0
我正在下面很无聊查询FK约束:MySQL的失败,因为那是不应该存在
alter table mytable change user_id user_id varchar(36) null default null,
add foreign key (user_id) references users(id) on delete set null;
但它失败,出现以下错误:
#1452 - Cannot add or update a child row: a foreign key constraint fails
(`mydatabase`.`#sql-602_60f`, CONSTRAINT `#sql-602_60f_ibfk_4`
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
的问题是,外键约束不存在,所以我不能删除它。在表上有三个外键约束(mytable_ibfk_1,mytable_ibfk_2,mytable_ibfk_3),但没有提及名称,并试图删除它会产生另一个错误。
任何想法如何解决这个问题?
看起来问题不在于FK存在并且必须删除,而是您尝试添加它会干扰数据库中无法满足新FK约束条件的现有行。 –
'user_id'中可能存在不存在于引用列'users.id'中的值。 –
哦,对,我现在明白了,谢谢。 – fred2