向表中添加记录(外键约束失败)

时间:2016-01-27 19:54:46

标签: mysql sql record

我在向表中添加一些记录时遇到问题(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:无法添加或更新子行:a   外键约束失败(issigrupy,CONSTRAINT   grupy_ibfk_1外键(login)参考pracownicylogin)   ON DELETE CASCADE)第6行第1列

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我相信当现有值无效时(即不在表中)会发生这种情况。您可以轻松地检查无效值:

select g.*
from grupy g
where not exists (select 1 from issi.pracownicy p on p.login = g.login);

如果是这种情况,请更改现有值(例如,更改为NULL),然后添加约束。