Nếu bạn nhìn vào kết quả truy vấn của mình, khóa ngoại bid_ibfk_3
đã tồn tại . Trên thực tế, nó nằm ở hàng thứ hai của kết quả.
def projekt_classics bid_ibfk_2 projekt_classics bid FOREIGN KEY
--the row below is the foreign key that you are trying to create
def projekt_classics bid_ibfk_3 projekt_classics bid FOREIGN KEY
def projekt_classics car_ibfk_1 projekt_classics car FOREIGN KEY
def projekt_classics car_ibfk_3 projekt_classics car FOREIGN KEY
def projekt_classics car_ibfk_4 projekt_classics car FOREIGN KEY
def projekt_classics car_brand_ibfk_1 projekt_classics car_brand FOREIGN KEY
Đó là lý do tại sao bạn nhận được tên ràng buộc khóa ngoại trùng lặp khi bạn đang cố gắng thực thi điều này:
ADD CONSTRAINT `bid_ibfk_3` FOREIGN KEY (`car_id`) REFERENCES `car` (`car_id`)
Bạn có thể sửa đổi truy vấn của mình để kiểm tra trước nếu khóa ngoại mà bạn đang cố tạo không tồn tại, trước khi thực sự tạo nó.
IF NOT EXISTS (SELECT NULL FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = DATABASE()
AND CONSTRAINT_TYPE = 'FOREIGN KEY'
AND CONSTRAINT_NAME = 'bid_ibfk_3') THEN
ALTER TABLE `bid` ADD CONSTRAINT `bid_ibfk_3`
FOREIGN KEY (`car_id`) REFERENCES `car` (`car_id`);
END IF