ऐसा करना ताकि कई सत्र अपडेट होने पर भी यह ध्वनि और सही हो, आसान नहीं है। यदि आप इसे ट्रिगर के साथ आज़माते हैं, तो आप स्वयं को परेशानी में डाल देंगे, और Oracle की घोषणात्मक बाधाएँ इसे व्यक्त करने के लिए पर्याप्त शक्तिशाली नहीं हैं।
इसे निम्नानुसार किया जा सकता है:-
- पैरेंट और चाइल्ड टेबल दोनों पर एक भौतिक दृश्य लॉग बनाएं
- एक भौतिक रूप से जुड़ने वाला दृश्य बनाएं जो उन्हें एक साथ जोड़ता है और माता-पिता द्वारा समूहित बच्चों की संख्या की गणना करता है। यह कमिट पर तेजी से ताज़ा होना चाहिए
- भौतिक रूप से शामिल होने पर एक बाधा डालें कि चाइल्ड रिकॉर्ड की संख्या "n" (आपका डेटाबेस स्थिर) के बराबर होनी चाहिए
फिर आप कथनों को सम्मिलित/अद्यतन/हटाएं की एक श्रृंखला कर सकते हैं। जब आप प्रतिबद्ध होते हैं, तो भौतिक दृश्य ताज़ा हो जाएगा और यदि शर्त पूरी नहीं होती है तो आपको उस बिंदु पर एक बाधा उल्लंघन त्रुटि मिलेगी।
चालबाजी का एक बोनस बिट केवल उन पंक्तियों को शामिल करना है जो भौतिक दृश्य में बाधा को विफल करती हैं (हैविंग काउंट (चाइल्डआईड) <> 5) ताकि आप किसी भी भंडारण स्थान को बर्बाद न करें।