sql - Cascade Update Oracle -


मेरे पास निम्न तालियां हैं:

  बनाएँ टेबल सप्लायर (supplier_id संख्यात्मक (10) नहीं शून्य, आपूर्तिकर्ता_नाम varchar2 (50), contact_name varchar2 (50), कॉन्ट्रैक्ट आपूर्तिकर्ता_पैक प्राथमिक कुंजी (सप्लायर_आईडी)); तालिका उत्पादों (उत्पाद_आईडी संख्यात्मक (10) नल, सप्लायर_आईडी संख्यात्मक (10), कॉन्ट्रैक्ट एफक_एपीपीएलियर विदेशी कुंजी (सप्लायर_आइडी) संदर्भ बनाएँ सप्लायर सप्लायर (सप्लायर_आईडी) डिलीटे सेट नल पर);  

मुझे 'आपूर्तिकर्ता' में प्राथमिक कुंजी को अद्यतन करने के लिए झरना चाहिए और इसलिए 'उत्पादों' में विदेशी कुंजी। मैं चाइल्ड टेबल को अपडेट करने के लिए एक ट्रिगर के साथ एक कर्सर की सोच रहा हूं, लेकिन यह समझ नहीं सकता कि यह कैसे हो सकता है

आम तौर पर, आप अपने डेटा मॉडल की संरचना कर सकते हैं जैसे कि प्राथमिक कुंजी को पहली जगह में समस्या से बचने के लिए अपरिवर्तनीय होते हैं।

यदि आप को कैस्केडडिंग अपडेट की अनुमति देने की आवश्यकता है, तो आप शायद टॉम का उपयोग करना चाहते हैं Kyte's है प्रत्येक तालिका के लिए, यह गतिशील रूप से एक पैकेज और तीन ट्रिगर (पहले बयान, पंक्ति से पहले, और बयान के बाद) उत्पन्न करेगा जो अपडेट को कैस्केड करने के लिए आवश्यक सभी तर्क लागू करेगा। यह किसी भी चीज़ की तुलना में बेहद अधिक कुशल (और अधिक सटीक) होने की संभावना है जो एक एकल डेवलपर एक साथ दस्तक देगा। बस उस वस्तु की बड़ी संख्या के कारण, जिसे बनाने की आवश्यकता है, हालांकि, यह बनाए रखने के लिए एक बहुत भारी ओवरहेड है।


Comments

Popular posts from this blog

sqlite3 - UPDATE a table from the SELECT of another one -

c# - Showing a SelectedItem's Property -

javascript - Render HTML after each iteration in loop -