[英]Adding record to Table (foreign key constraint fails)
I have problem with adding some records to my table (grupy, login(VARCHAR 32, Primary Key, Unique), grupa(VARCHAR 10). 我在向表中添加一些记录时遇到问题(grupy,login(VARCHAR 32,主键,唯一键),grupa(VARCHAR 10)。
When I try this script: 当我尝试此脚本时:
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');
I got a error: 我收到一个错误:
Error code 1452, SQL state 23000: Cannot add or update a child row: a foreign key constraint fails (
issi
.grupy
, CONSTRAINTgrupy_ibfk_1
FOREIGN KEY (login
) REFERENCESpracownicy
(login
) ON DELETE CASCADE) Line 6, column 1错误代码1452,SQL状态23000:不能添加或更新子行,外键约束失败(
issi
。grupy
,约束grupy_ibfk_1
外键(login
)参考pracownicy
(login
)ON DELETE CASCADE)6号线,1列
What did I do wrong? 我做错了什么?
I believe this happens when an existing value is invalid -- ie not in the table. 我相信当现有值无效时(即不在表中)会发生这种情况。 You can check for invalid values easily enough:
您可以轻松地检查无效值:
select g.*
from grupy g
where not exists (select 1 from issi.pracownicy p on p.login = g.login);
If this is the case, change the existing values (say, to NULL
) and then add the constraint. 如果是这种情况,请更改现有值(例如,更改为
NULL
),然后添加约束。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.