错误1022:Can';不写字;表'中的重复键#sql-209c#u8';SQL语句:
为什么我不能添加两个外键 执行:错误1022:Can';不写字;表'中的重复键#sql-209c#u8';SQL语句:,sql,Sql,为什么我不能添加两个外键 执行: 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 scri
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
您似乎正在使用MySQL 从错误消息中,很可能已经存在另一个具有相同名称的约束(即
BRANCH\u ID
)。这是不允许的
为了解决这个问题,您可以简单地为您试图创建的约束指定一个不同的名称
您可以通过查询找出哪些表使用相同的约束名称
SELECT table_schema, table_name, column_name
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE constraint_name = 'BRANCH_ID';