【问题标题】:How to avoid adding duplicate foreign key constraints如何避免添加重复的外键约束
【发布时间】:2019-07-30 02:11:20
【问题描述】:

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

示例:如果我执行以下查询 3 次,则约束将在 phpmyadmin 中存在 3 次...如果我第二次和第三次应用该查询时它会被拒绝,那就太好了。

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

【问题讨论】:

    标签: mysql sql foreign-keys create-table alter-table


    【解决方案1】:

    您可以为外键指定一个明确的名称,而不是让 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

    【讨论】:

      猜你喜欢
      • 2015-11-16
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 2017-06-10
      • 1970-01-01
      • 1970-01-01
      • 2016-08-10
      • 2014-06-01
      相关资源
      最近更新 更多