mysql无法添加或更新子行_MySQL错误1452-无法添加或更新子行:外键约束失败?
每當我們在表之間添加外鍵約束并將記錄插入子表中時,都會發(fā)生此錯誤。讓我們來看一個例子。
創(chuàng)建子表。mysql>?create?table?ChildDemo
->?(
->?id?int,
->?FKPK?int
->?);
創(chuàng)建第二個表。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
創(chuàng)建外鍵約束后,每當我們在第一個表或子表中插入記錄時,都會出現(xiàn)上述錯誤。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`))
當您嘗試添加另一表中沒有匹配行的行時,將出現(xiàn)錯誤。
就像聲明的那樣
“外鍵關系涉及一個包含中央數(shù)據(jù)值的父表,以及一個具有指向其父級的相同值的子表。在子表中指定FOREIGN KEY子句。如果父表中沒有匹配的候選鍵值,它將拒絕任何試圖在子表中創(chuàng)建外鍵值的INSERT或UPDATE操作。”
總結(jié)
以上是生活随笔為你收集整理的mysql无法添加或更新子行_MySQL错误1452-无法添加或更新子行:外键约束失败?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 性能优化 常用,Oracl
- 下一篇: mysql中括号_干货!Python与M