簡體   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