मुझे उत्सुकता है कि अगर मैं NOT NULL, FOREIGN KEY, UNIQUE, CHECK
बाधाओं और BEFORE
ट्रिगर्स को सत्यापित करने के किसी विशेष आदेश पर भरोसा कर सकता हूं।क्या एसक्यूएल मानक बाधा सत्यापन के आदेश को निर्दिष्ट करता है और फायरिंग ट्रिगर करता है?
अनुभव से मुझे पता है कि MySQL पहले NOT NULL
की जांच करता है, फिर BEFORE
ट्रिगर लॉन्च करता है, और फिर UNIQUE
बाधाओं को चेक करता है। BEFORE
ट्रिगर के बाद ओरेकल NOT NULL
चेक करता है (मुझे विश्वास है कि SQLServer वही करता है, लेकिन याद नहीं है)। क्या मानक आदेश के बारे में कुछ भी कहता है या यह पूरी तरह से डीबी विक्रेता तक है?
ओरेकल ** नहीं ** ** ट्रिगर्स के बाद तक शून्य न करें। इससे 'पहले' ट्रिगर को मानों को बदलने की अनुमति मिलती है जैसे कि वे अब शून्य नहीं हैं। –
@ शैनन सेवरेंस: हाँ, क्षमा करें, मैं mysql के बारे में सोच रहा था ... फिक्स्ड – a1ex07
आप एक [ड्राफ्ट] (http://www.wiscorp.com/sql200n.zip) (विकिपीडिया से लिया गया लिंक) डाउनलोड कर सकते हैं हालिया मानक और इसे स्वयं देखिए (मुझे ऐसी कोई परिभाषा नहीं मिल रही है) –