Saya mendapatkan pesan kesalahan ini:
ERROR 1217 (23000) di baris 40: Tidak dapat menghapus atau memperbarui baris induk: batasan kunci asing gagal
... ketika saya mencoba menjatuhkan tabel:
DROP TABLE IF EXISTS `area`;
... didefinisikan seperti ini:
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;
Lucunya, saya sudah menjatuhkan semua tabel lain dalam skema yang memiliki kunci asing area
. Sebenarnya database kosong kecuali area
tabel.
Bagaimana mungkin memiliki baris anak jika tidak ada objek lain dalam database? Sejauh yang saya tahu, InnoDB tidak mengizinkan kunci asing di skema lain, bukan?
(Saya bahkan dapat menjalankan RENAME TABLE area TO something_else
perintah: -?)
CONSTRAINT fk_servicio_area1 FOREIGN KEY (area_id) REFERENCES area (area_id)
, tidak ada nama skema pada referensi tabel: -?