首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误1022:无法写入;表'# SQL -209c_8‘SQL语句中的键重复:

错误1022:无法写入;表'# SQL -209c_8‘SQL语句中的键重复:
EN

Stack Overflow用户
提问于 2019-09-28 13:43:01
回答 1查看 362关注 0票数 0

为什么我不能添加两个外键?

正在执行:

代码语言:javascript
复制
ALTER TABLE `adv`.`book` 
ADD CONSTRAINT `BRANCH_ID`
  FOREIGN KEY (`BRANCH_ID`)
  REFERENCES `adv`.`branch` (`BRANCH_ID`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION;

Operation failed: There was an error while applying the SQL script to the database.
ERROR 1022: Can't write; duplicate key in table '#sql-209c_8'
SQL Statement:
ALTER TABLE `adv`.`book` 
ADD CONSTRAINT `BRANCH_ID`
  FOREIGN KEY (`BRANCH_ID`)
  REFERENCES `adv`.`branch` (`BRANCH_ID`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION
EN

回答 1

Stack Overflow用户

发布于 2019-09-28 17:46:10

您似乎正在使用MySQL。

从错误消息中可以看出,很可能已经存在另一个同名的约束(即BRANCH_ID)。这是不允许的。

要解决这个问题,您可以简单地为您尝试创建的约束指定一个不同的名称。

您可以查询catalog view INFORMATION_SCHEMA.KEY_COLUMN_USAGE来找出哪些表使用了相同的约束名称。

代码语言:javascript
复制
SELECT table_schema, table_name, column_name
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE constraint_name = 'BRANCH_ID';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58143710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档