gpt4 book ai didi

mysql - 无法从 mysql 中的两个表中删除行

转载 作者:行者123 更新时间:2023-11-29 20:12:14 25 4
gpt4 key购买 nike

我的查询是

delete ip.*,im.* 
from INPUT_MAPPING im
left outer join INPUT_CONFIGURATION ip on(im.INPUT_ID=ip.INPUT_ID)
where ip.INPUT_ID=78

这里INPUT_CONFIGURATION是父表,INPUT_MAPPING是子表,INPUT_ID 是 INPUT_CONFIGURATION 表的主键和 INPUT_MAPPING 表的外键

使用此查询,我无法从 INPUT_MAPPING 表以及具有公共(public) INPUT_ 的 INPUT_CONFIGURATION 表中删除行78

执行后出现错误

11:19:52 delete ip.,im. from INPUT_MAPPING im left outer joinINPUT_CONFIGURATION ip on(im.INPUT_ID=ip.INPUT_ID) whereip.INPUT_ID=78

Error Code: 1451. Cannot delete or update a parent row:a foreign key constraint fails (clover_converter.INPUT_MAPPING,CONSTRAINT INPUT_MAPPING_ibfk_1 FOREIGN KEY (INPUT_ID) REFERENCESINPUT_CONFIGURATION (INPUT_ID)) 0.0033 sec

最佳答案

如果您喜欢“父项”和“子项”术语,并且觉得它们很容易记住,您可能会喜欢将ON DELETE CASCADE 翻译为“不留孤儿”!

这意味着当父行被删除(终止)时,子表中不应存在任何孤立行。父行的所有子行也会被杀死(删除)。如果这些 child 中的任何一个有孙子(通过另一个外键在另一个表中)并且定义了 ON DELETE CASCADE ,那么它们也应该被杀死(以及所有后代,只要存在级联效应)定义。)

FOREIGN KEY 约束本身也可以描述为“不允许孤儿”! (首先)。如果没有父项(父表中的一行),则子表中不应允许(写入)任何子项。

为了保持一致性,ON DELETE RESTRICT 可以翻译为(不那么激进)“你不能杀死 parent !”只能杀死(删除)没有子代的行。

关于mysql - 无法从 mysql 中的两个表中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40013385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com