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

किसी व्यू पर डिलीट रूल कैसे लिखें?

आप नियम समस्या के साथ जो देख रहे हैं वह यह है कि नियम प्रणाली डेटा को परमाणु रूप से संभालती नहीं है। DO INSTEAD नियम में दो कथनों के क्रम की परवाह किए बिना पहला डिलीट निष्पादित किया जाता है। दूसरा कथन कभी निष्पादित नहीं होता है, क्योंकि जिस पंक्ति को OLD.id संदर्भित करता है उसे दृश्य से हटा दिया गया है। आप लेफ्ट जॉइन का उपयोग कर सकते हैं, लेकिन उदाहरण तालिका डिज़ाइन के कारण यह आपकी मदद नहीं करेगा (यह आपके वास्तविक डेटाबेस स्कीमा पर काम कर सकता है)।

मूल समस्या, जैसा कि मैं देख रहा हूं, यह है कि आप नियम प्रणाली के साथ ऐसा व्यवहार कर रहे हैं जैसे वह एक ट्रिगर था।

आपका सबसे अच्छा विकल्प विदेशी कुंजियों और ON DELETE CASCADE . का उपयोग करना है नियमों के बजाय। उनके साथ आपका उदाहरण स्कीमा भी काम करेगा:सभी बच्चों से छुटकारा पाने के लिए आपको केवल पैरेंट टेबल के लिए डिलीट की आवश्यकता होगी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मेरा पोस्टग्रेज डेटाबेस कुछ समय के लिए क्यों काम कर रहा है और फिर एक बार फिर से शुरू होने पर सर्वर शुरू करने में सक्षम नहीं है?

  2. PostgreSQL श्रृंखला को गलत तरीके से क्यों संयोजित करता है?

  3. कोड कवरेज आँकड़े

  4. ऑर्डर बाय के साथ विभाजन में पंक्तियों की गणना करें

  5. जूक्यू डीएसएलकॉन्टेक्स्ट के .close() को कॉल करते समय कनेक्शन कब बंद हो जाता है, यदि बिल्कुल?