我在将一些记录添加到我的表(grupy,登录(VARCHAR 32,主键,唯一),grupa(VARCHAR 10)时有问题。
当我尝试这个脚本时:
ALTER TABLE `grupy` ENGINE = InnoDB;
ALTER TABLE `grupy` ADD FOREIGN KEY ( `login` ) REFERENCES `issi`.`pracownicy` (`login`) ON DELETE CASCADE;
INSERT INTO `grupy` (`login`, `grupa`) VALUES
('administrator', 'zalogowany');我有个错误:
错误代码1452,SQL状态23000:无法添加或更新子行:外键约束失败(
issi.grupy,约束grupy_ibfk_1外键(login)引用pracownicy(login) )第6行,第1列
我做错什么了?
发布于 2016-01-27 20:00:29
我认为,当一个现有值无效时,即不在表中时,就会发生这种情况。您可以很容易地检查无效的值:
select g.*
from grupy g
where not exists (select 1 from issi.pracownicy p on p.login = g.login);如果是这样的话,更改现有的值(例如,NULL),然后添加约束。
https://stackoverflow.com/questions/35046813
复制相似问题