mysql - 如何避免添加重复的外键约束
问题描述
我想知道是否可以避免多次添加相同的外键约束?
示例:如果我执行下面的查询 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 为您分配一个默认名称。
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”
推荐阅读
- java - Java - 星号,这是什么意思
- php - MS Access 多个内连接
- c# - Unity / C# - 是否可以返回 InputManager 的前进、后退、左、右按钮?
- python-3.x - 在执行 alien_invasion 时收到此错误。如何摆脱这个?
- d3.js - 如何使用交叉过滤器过滤图形数据并在力有向图上可视化它们?
- html - 如何删除 h1 标签中文本周围的默认空白
- c++ - 减法倒计时到零游戏模式与C++中的递归
- r - 通过 R 中的嵌套函数传递默认参数
- c - C - 有效日期证书测试中的 Seg 错误
- c# - BLE 服务 UUID--System.FormatException:'Guid 应包含 32 位数字和 4 个破折号(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。