ऐसा लगता है कि मेरा उत्तर यहां ...
<ब्लॉकक्वॉट>सामान्य रूप से MySQL की तरह, एक SQL स्टेटमेंट में जो कई पंक्तियों को सम्मिलित करता है, हटाता है या अपडेट करता है, InnoDB UNIQUE और FOREIGN KEY बाधाओं को पंक्ति-दर-पंक्ति जाँचता है। विदेशी कुंजी जांच करते समय, InnoDB बच्चे या माता-पिता के रिकॉर्ड पर साझा पंक्ति-स्तरीय लॉक सेट करता है जिसे उसे देखना होता है। InnoDB तुरंत विदेशी कुंजी बाधाओं की जाँच करता है; चेक लेन-देन प्रतिबद्धता के लिए आस्थगित नहीं है। SQL मानक के अनुसार, डिफ़ॉल्ट व्यवहार की जाँच स्थगित होनी चाहिए। अर्थात्, संपूर्ण SQL कथन संसाधित होने के बाद ही बाधाओं की जाँच की जाती है। जब तक InnoDB आस्थगित बाधा जाँच को लागू नहीं करता, तब तक कुछ चीजें असंभव होंगी, जैसे कि एक रिकॉर्ड को हटाना जो एक विदेशी कुंजी का उपयोग करके खुद को संदर्भित करता है।
ड्रॉइंग बोर्ड पर वापस जाएं।