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

ओरेकल:ऑटो-इन्क्रीमेंट ट्रिगर।

ठीक है, मुझे लगता है कि मुझे समझ में आ रहा है कि क्या हो रहा है। आपके प्रश्न का उत्तर बिल्कुल विशाल है हां . यदि आप इस ट्रिगर को अक्षम करते हैं तो इसका बड़ा प्रभाव हो सकता है।

यह ट्रिगर मौजूद होने का कारण उस स्थिति से निपटना है जहां प्राथमिक कुंजी मान नहीं है आपकी तालिका में एक डालने पर प्रदान किया गया। अगर ऐसा होता है कहीं भी आपके कोड में वे ट्रिगर को हटाने से वे इंसर्ट टूट जाएंगे।

आपको दो काम करने होंगे।

  1. ट्रिगर ठीक करें, यह स्पष्ट रूप से टूटा हुआ है; इसे ठीक करें:

    प्रत्येक पंक्ति के लिए PRIVILEGE पर डालने से पहले अगर अंत; समाप्त;

    यदि आप Oracle 11G या इससे अधिक का उपयोग कर रहे हैं तो आप इसके बजाय इसका उपयोग कर सकते हैं:

     यदि :NEW.PRIVILEGE_ID रिक्त है तो :NEW.PRIVILEGE_ID :=PRIVILEGE_SEQ.nextval; अगर अंत;  
  2. पता करें कि क्या वास्तव में ऐसा होता है। यदि आप प्राथमिक कुंजी के बिना रिकॉर्ड सम्मिलित करते हैं तो आपको यह पता लगाना होगा कि ऐसा क्यों हो रहा है और क्या व्यवहार सही है। यदि ऐसा है तो आप ट्रिगर के साथ फंस गए हैं, अन्यथा इसे ठीक करें। यदि आप प्राथमिक कुंजी के बिना कभी भी रिकॉर्ड नहीं डालते हैं तो आप ट्रिगर को अक्षम कर सकते हैं।

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. व्यक्तिगत कॉलम स्वरूपण के बिना, कॉलम नामों के sqlplus छंटनी को रोकना

  2. MVC3 एप्लिकेशन में प्रपत्र प्रमाणीकरण के साथ Oracle डेटाबेस का उपयोग करें

  3. पीएलएसक्यूएल जेडीबीसी:अंतिम पंक्ति आईडी कैसे प्राप्त करें?

  4. Oracle में एकाधिक प्रतिस्थापन फ़ंक्शन

  5. आप संग्रहित प्रक्रिया की निर्भरताओं को प्रोग्रामिक रूप से कैसे पहचानते हैं?