繁体   English   中英

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

[英]Adding record to Table (foreign key constraint fails)

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

我做错了什么?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM