PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

पोस्टग्रेएसक्यूएल:विदेशी कुंजी/डिलीट कैस्केड पर

कैस्केड डिलीट के साथ एक विदेशी कुंजी का अर्थ है कि यदि मूल तालिका में कोई रिकॉर्ड हटा दिया जाता है, तो चाइल्ड टेबल में संबंधित रिकॉर्ड स्वचालित रूप से हटा दिए जाएंगे। इसे कैस्केड डिलीट कहा जाता है।

आप विपरीत तरीके से कह रहे हैं, ऐसा नहीं है कि जब आप चाइल्ड टेबल से डिलीट करेंगे तो पैरेंट टेबल से रिकॉर्ड डिलीट हो जाएंगे।

UPDATE 1:

डिलीट कैस्केड पर विकल्प यह निर्दिष्ट करना है कि क्या आप चाहते हैं कि चाइल्ड टेबल में पंक्तियों को हटा दिया जाए जब पैरेंट टेबल में संबंधित पंक्तियों को हटा दिया जाए। यदि आप कैस्केडिंग डिलीट निर्दिष्ट नहीं करते हैं, तो डेटाबेस सर्वर का डिफ़ॉल्ट व्यवहार आपको किसी तालिका में डेटा को हटाने से रोकता है यदि अन्य तालिकाएं इसका संदर्भ देती हैं।

यदि आप इस विकल्प को निर्दिष्ट करते हैं, तो बाद में जब आप पैरेंट तालिका में एक पंक्ति को हटाते हैं, तो डेटाबेस सर्वर चाइल्ड तालिका में उस पंक्ति (विदेशी कुंजी) से जुड़ी किसी भी पंक्ति को भी हटा देता है। कैस्केडिंग-डिलीट फीचर का मुख्य लाभ यह है कि यह आपको SQL स्टेटमेंट की मात्रा को कम करने की अनुमति देता है जो आपको डिलीट एक्शन करने की आवश्यकता होती है।

तो यह सब इस बारे में है कि जब आप चाइल्ड टेबल से नहीं पेरेंट टेबल से पंक्तियों को हटाते हैं तो क्या होगा।

तो आपके मामले में जब उपयोगकर्ता सीएटी तालिका से प्रविष्टियां हटा देता है तो पुस्तकें तालिका से पंक्तियां हटा दी जाएंगी। :)

आशा है कि यह आपकी मदद करेगा :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में डुप्लिकेट रिकॉर्ड कैसे खोजें

  2. SQLAlchemy, Psycopg2 और Postgresql COPY

  3. PostgreSQL और Apache Spark के साथ बड़ा डेटा

  4. SQLalchemy भूमिका निर्धारित करते समय परिवर्तन नहीं कर रहा है

  5. PostgreSQL बल्क डेटा लोड करने के लिए 7 सर्वोत्तम अभ्यास युक्तियाँ