tôi nhận được thông báo lỗi này:Bogus ràng buộc khoá ngoại thất bại
ERROR 1217 (23000) tại dòng 40: không thể xóa hoặc cập nhật hàng mẹ: a ràng buộc khoá ngoại thất bại
... khi tôi cố gắng để thả một bảng:
DROP TABLE IF EXISTS `area`;
... đị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 thú vị 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 trừ bảng area
.
Làm cách nào để có thể 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 các 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 lệnh RENAME TABLE area TO something_else
: -?)
Có thể bảng đó là một phần của mối quan hệ Toàn vẹn tham chiếu trong một lược đồ khác không? –
Tôi có một số bản sao khác của ứng dụng để luôn có thể. Tuy nhiên, cú pháp tôi sử dụng về cơ bản là 'CONSTRAINT fk_servicio_area1 FOREIGN KEY (area_id) vùng tham chiếu (area_id)', tức là, không có tên lược đồ nào trong tham chiếu bảng: -? –