मुझे यह त्रुटि संदेश मिला:
ERROR 1217 (23000) लाइन 40 पर: पेरेंट रो को डिलीट या अपडेट नहीं कर सकता: विदेशी कुंजी बाधा विफल रहती है
... जब मैं एक तालिका छोड़ने की कोशिश करता हूं:
DROP TABLE IF EXISTS `area`;
... इस तरह परिभाषित:
CREATE TABLE `area` (
`area_id` char(3) COLLATE utf8_spanish_ci NOT NULL,
`nombre_area` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
`descripcion_area` varchar(100) COLLATE utf8_spanish_ci NOT NULL,
PRIMARY KEY (`area_id`),
UNIQUE KEY `nombre_area_UNIQUE` (`nombre_area`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
मजेदार बात यह है कि मैंने पहले ही स्कीमा में अन्य सभी तालिकाओं को गिरा दिया है जिनके पास विदेशी कुंजी है area
। दरअसल, area
तालिका को छोड़कर डेटाबेस खाली है ।
यदि डेटाबेस में कोई अन्य ऑब्जेक्ट नहीं है तो संभवतः यह चाइल्ड रो कैसे हो सकता है? जहां तक मुझे पता है, InnoDB अन्य स्कीमाओं पर विदेशी कुंजी की अनुमति नहीं देता है, क्या यह है?
(मैं भी एक RENAME TABLE area TO something_else
कमांड चला सकते हैं : -?)
CONSTRAINT fk_servicio_area1 FOREIGN KEY (area_id) REFERENCES area (area_id)
, अर्थात, तालिका संदर्भ पर कोई स्कीमा नाम नहीं: -?