我正在尝试在教程表中添加外键'USERNAME',但是出现了错误。
Executing:
ALTER TABLE `databse`.`tutorial`
ADD CONSTRAINT `USERNAME`
FOREIGN KEY (`USERNAME`)
REFERENCES `databse`.`register` (`USERNAME`)
ON DELETE CASCADE
ON UPDATE CASCADE;
Operation failed: There was an error while applying the SQL script to the database.
ERROR 1452: Cannot add or update a child row:
a foreign key constraint fails (`databse`.`#sql-e7c_5`, CONSTRAINT `USERNAME` FOREIGN KEY (`USERNAME`)
REFERENCES `register` (`USERNAME`) ON DELETE CASCADE ON UPDATE CASCADE)
SQL Statement:
ALTER TABLE `databse`.`tutorial`
ADD CONSTRAINT `USERNAME`
FOREIGN KEY (`USERNAME`)
REFERENCES `databse`.`register` (`USERNAME`)
ON DELETE CASCADE
ON UPDATE CASCADE
有什么想法吗?谢谢
我解决了它,我创建了一个新的'教程'表替换'教程'表,并使用相同的方式添加外键,它工作! = =
仍然感谢你的帮助!!
答案 0 :(得分:0)
如上所述here:
FOREIGN KEY是一个表中的一个字段(或字段集合),它引用另一个表中的PRIMARY KEY。
在您显示的代码中:您尝试引用" USERNAME"列,它不是您上次捕获的主键
因此,您可以将register
表格中的主键更改为USERNAME
,也可以将外键更改为引用TutorialName
答案 1 :(得分:0)
你有两个表一个是子表,第二个是父表。所以你需要保证每个子列都有NULL或者父列中有值。
答案 2 :(得分:0)
此问题通常是由于受新外键约束的两列中显示的值不匹配所致。
也就是说,子表中显示的值没有父表中显示的引用。
创建外键时,需要确保: