如何避免添加重复的外键约束

时间:2019-03-08 04:00:01

标签: mysql sql foreign-keys

我想知道是否可以避免多次添加相同的外键约束?

示例:如果我执行以下3次查询,则phpmyadmin中将存在3次约束。。。这将是我第二次和第三次应用该查询被拒绝的绝佳选择。

ALTER TABLE `my_items_details`
ADD FOREIGN KEY (`items_id`) REFERENCES `my_items`(`item_id`)
ON DELETE RESTRICT
ON UPDATE CASCADE;

1 个答案:

答案 0 :(得分:2)

您可以为外键指定一个明确的名称,而不是让MySQL为您分配默认名称。

ALTER TABLE `my_items_details`
ADD FOREIGN KEY  `my_foreign_key`  (`item_id`) REFERENCES `my_items`(`item_id`)
ON DELETE RESTRICT
ON UPDATE CASCADE;

由于两个相同类型的对象不能具有相同的名称,因此该查询将在您第二次运行它时产生错误:

  

错误:ER_FK_DUP_NAME:重复的外键约束名称“ my_foreign_key”

Demo on DB Fiddle