Tôi nhận được thông báo lỗi này:
LỖI 1217 (23000) ở dòng 40: Không thể xóa hoặc cập nhật hàng mẹ: ràng buộc khóa ngoại không thành công
... khi tôi cố gắng làm rơi một cái bàn:
DROP TABLE IF EXISTS `area`;
... được định nghĩa như thế này:
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;
Điều buồn cười là tôi đã bỏ tất cả các bảng khác trong lược đồ có khóa ngoại chống lại area
. Trên thực tế, cơ sở dữ liệu trống ngoại trừ area
bảng.
Làm thế nào nó có thể có các hàng con nếu không có bất kỳ đối tượng nào khác trong cơ sở dữ liệu? Theo như tôi biết, InnoDB không cho phép khóa ngoại trên các lược đồ khác, phải không?
(Tôi thậm chí có thể chạy một RENAME TABLE area TO something_else
lệnh: -?)
CONSTRAINT fk_servicio_area1 FOREIGN KEY (area_id) REFERENCES area (area_id)
, cú pháp tôi sử dụng là không có tên lược đồ trên tham chiếu bảng: -?