उत्तर डी। सही है, अगर और केवल अगर भंडारण इंजन वास्तव में विदेशी कुंजी बाधाओं का समर्थन करता है और उन्हें लागू करता है।
यदि तालिकाएँ Engine=MyISAM
. के साथ बनाई गई हैं , तो न तो b. या घ. सही है।
यदि तालिकाएँ Engine=InnoDB
. के साथ बनाई गई हैं , फिर d. सही है।
नोट:
यह InnoDB के लिए सच है अगर और केवल अगर FOREIGN_KEY_CHECKS = 1
; अगर FOREIGN_KEY_CHECKS = 0
, फिर एक DELETE
मूल तालिका से (foo) नहीं होगा चाइल्ड टेबल (foo2) से उन पंक्तियों को हटा दें जो पैरेंट टेबल से हटाई गई पंक्ति को संदर्भित करती हैं।
इसे SHOW VARIABLES LIKE 'foreign_key_checks'
के आउटपुट से सत्यापित करें (1=चालू, 0=बंद)(इसके लिए सामान्य डिफ़ॉल्ट चालू होना है।)
SHOW CREATE TABLE foo
. से आउटपुट दिखाएगा कि तालिका किस इंजन का उपयोग करती है।
SHOW VARIABLES LIKE 'storage_engine'
. से आउटपुट जब कोई तालिका बनाई जाती है और इंजन निर्दिष्ट नहीं किया जाता है, तो उपयोग किया गया डिफ़ॉल्ट इंजन दिखाएगा।