เกิดข้อผิดพลาดในการสร้าง foreign key จาก MySQL Workbench


9

ฉันพยายามซิงโครไนซ์การเปลี่ยนแปลงสคีมาจาก MySQL Workbench กับฐานข้อมูลของฉัน ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามสร้างคีย์ต่างประเทศ:

Executing SQL script in server
ERROR: Error 1005: Can't create table 'tomato.#sql-2730_1b8' (errno: 121)

นี่คือคำสั่งที่พยายามเรียกใช้:

ALTER TABLE `tomato`.`ing_allergy_ingredient` 
ADD CONSTRAINT `fk_ai_allergy`
FOREIGN KEY (`allergy_id` )
REFERENCES `tomato`.`ing_allergy` (`allergy_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION

ความคิดเห็นใด ๆ ที่ข้อผิดพลาดนี้หมายถึงอะไร

คำตอบ:


11

คุณจะได้รับข้อความนี้หากคุณพยายามเพิ่มข้อ จำกัด ด้วยชื่อที่ใช้อยู่แล้วที่อื่น

ตามโพสต์นี้คุณสามารถตรวจสอบข้อ จำกัด ของคุณเช่นนี้:

หากตารางที่คุณพยายามสร้างมีข้อ จำกัด ของรหัสต่างประเทศและคุณได้ตั้งชื่อของคุณเองสำหรับข้อ จำกัด นั้นโปรดจำไว้ว่าต้องไม่ซ้ำกันภายในฐานข้อมูล เรียกใช้คิวรีนี้เพื่อดูว่าชื่อนั้นมีการใช้งานที่ใดที่หนึ่ง:

SELECT
  constraint_name,
  table_name
FROM
  information_schema.table_constraints
WHERE
  constraint_type = 'FOREIGN KEY'
  AND table_schema = DATABASE()
ORDER BY
  constraint_name;

คีย์ต่างประเทศไม่ปรากฏในการค้นหานี้ แต่เมื่อฉันดูตารางจะมีดัชนีที่มีชื่อเดียวกัน ฉันเชื่อว่าเป็นข้อผิดพลาดกับการซิงโครไนซ์ใน MySQL Workbench ฉันดาวน์โหลดเวอร์ชันล่าสุด (5.2.31) และปัญหาหายไป
BenV
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.