[英]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:不能添加或更新子行,外鍵約束失敗(
issi
。grupy
,約束grupy_ibfk_1
外鍵(login
)參考pracownicy
(login
)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.