mysql无法添加或更新子行_MySQL错误1452-无法添加或更新子行:外键约束失败?
每當我們在表之間添加外鍵約束并將記錄插入子表中時,都會發生此錯誤。讓我們來看一個例子。
創建子表。mysql>?create?table?ChildDemo
->?(
->?id?int,
->?FKPK?int
->?);
創建第二個表。mysql>?create?table?ParentDemo
->?(
->?FKPK?int,
->?Name?varchar(100)
->?,
->?primary?key(FKPK)
->?);
添加外鍵約束。mysql>?alter?table?ChildDemo?add?constraint?ConstChild?foreign?key(FKPK)?references?ParentDemo(FKPK);
Records:?0??Duplicates:?0??Warnings:?0
創建外鍵約束后,每當我們在第一個表或子表中插入記錄時,都會出現上述錯誤。mysql>?insert?into?ChildDemo?values(1,3);
ERROR?1452?(23000):?Cannot?add?or?update?a?child?row:?a?foreign?key?constraint?fails?(`business`.`childdemo`,?CONSTRAINT?`ConstChild`?FOREIGN?KEY?(`FKPK`)?REFERENCES?`parentdemo`?(`fkpk`))
當您嘗試添加另一表中沒有匹配行的行時,將出現錯誤。
就像聲明的那樣
“外鍵關系涉及一個包含中央數據值的父表,以及一個具有指向其父級的相同值的子表。在子表中指定FOREIGN KEY子句。如果父表中沒有匹配的候選鍵值,它將拒絕任何試圖在子表中創建外鍵值的INSERT或UPDATE操作。”
總結
以上是生活随笔為你收集整理的mysql无法添加或更新子行_MySQL错误1452-无法添加或更新子行:外键约束失败?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 性能优化 常用,Oracl
- 下一篇: android socket 闪退,an