我正在运行一系列升级脚本。作为一个注释,在早期的脚本中,有很多这些:
ALTER TABLE文件 DROP FOREIGN KEY files_ibfk_1, DROP FOREIGN KEY files_ibfk_2;
但是,这些键不存在......
现在我收到了错误......:
无法添加或更新子行:外键约束失败(
pacsdbcmi
。#sql-536_77
,CONSTRAINT#sql-536_77_ibfk_1
FOREIGN KEY(series_fk
)参考series
(pk
))
什么是#sql-536_77?有人可以解释这意味着什么吗?我没有名为#sql-536-77的表,也没有名为#sql-536_77_ibfk_1的系列密钥
由于
答案 0 :(得分:1)
这是因为还有另一个表对于父表是外来的。CASCADE
关系应该在那里。所以在ALTER
父表外键之前请删除现有的CASCADES
< / p>
OR
使用强>
SET foreign_key_checks = 0;
AND
ALTER TABLE files DROP FOREIGN KEY files_ibfk_1, DROP FOREIGN KEY files_ibfk_2;
然后
SET foreign_key_checks = 1;
通过将外键检查设置为0,您可以使用ALTER表。完成对表格的操作后,您可以再次将密钥检查重置为1,现在一切都恢复原状。