जैसा कि आपने देखा है कि ट्रिगर के साथ अपनी व्यावसायिक आवश्यकताओं का उत्तर देना कठिन होगा। इसका कारण यह है कि Oracle हो सकता है एक ही क्वेरी (समानांतर डीएमएल) के लिए एक ही समय में एक से अधिक थ्रेड वाली तालिकाओं को अद्यतन/सम्मिलित करें। इसका अर्थ है कि आपका सत्र उस तालिका को क्वेरी नहीं कर सकता जिसे वह अपडेट करता है अपडेट होने के दौरान ।
यदि आप वास्तव में ट्रिगर के साथ ऐसा करना चाहते हैं तो आपको टॉम कायटे द्वारा इस लेख में दिखाया गया तर्क का प्रकार . जैसा कि आप देख सकते हैं कि यह कुछ आसान नहीं है।
एक और, सरल, अधिक सुरुचिपूर्ण, बनाए रखने में आसान विधि है:प्रक्रियाओं का उपयोग करें। एप्लिकेशन के उपयोगकर्ता (उपयोगकर्ताओं) को अपडेट/सम्मिलित करने का अधिकार निरस्त करें और प्रक्रियाओं का एक सेट लिखें जो एप्लिकेशन को स्टेट कॉलम को अपडेट करने की अनुमति देता है।
इन प्रक्रियाओं से पैरेंट रो पर लॉक हो जाएगा (पंक्तियों के एक ही सेट को संशोधित करने के लिए कई सत्रों को रोकने के लिए) और आपके व्यावसायिक तर्क को एक कुशल, पठनीय और आसानी से बनाए रखने योग्य तरीके से लागू करेगा।