यदि आपका अपने स्कीमा पर नियंत्रण है, तो मैं स्कीमा को कैस्केडिंग का उपयोग करने के लिए उपयोग करुंगा। हटाता है ।
लेख से (आपके उदाहरण के लिए अनुवादित अधिक प्रासंगिक भाग)
CREATE TABLE point
(
pt_id integer PRIMARY KEY,
evt_id integer REFERENCES event ON DELETE CASCADE
)
यदि आपके पास कैस्केड सेट हैं, तो आप केवल मुख्य ईवेंट तालिका से हटा सकते हैं और अन्य सभी तालिकाएं स्वचालित रूप से साफ़ हो जाएंगी
अन्यथा, आपको पहले सभी संदर्भों को हटाना होगा, फिर आप मुख्य तालिका को हटा देंगे। डेटा को लगातार बनाए रखने के लिए आपको इसे एक लेन-देन में करना चाहिए
BEGIN;
DELETE FROM trace WHERE EXISTS
(SELECT 1 FROM point WHERE evt_id = 1139 AND trace.pt_id = point.pt_id);
DELETE FROM point where evt_id = 1139;
DELETE FROM magnitude where evt_id = 1139;
DELETE FROM event where evt_id = 1139;
COMMIT;