我已经检查了所有依赖于此错误的问题,但找不到我的答案
这是我的EER图EER Diagram 我在Sales中插入一行例如这样(SellerFId = 1,GoodFId = 1,CustomerFId = 1)所以我希望能够从他们自己的表中删除卖家或好或客户所以在销售中插入的行仍然保留我使用销售和其他表之间的外部约束
ON DELETE NO ACTION ON UPDATE NO ACTION
但当我从他们自己的表中删除卖家或好人或客户时mysql不允许我并给我这个错误
无法删除或更新父行:外键约束失败(
)newmobarakkabul
。sales
,CONSTRAINTfk_Sellers_has_Goods_has_Customers_Sellers1
FOREIGN KEY(SellerFId
)参考staffs
(StaffId
)在更新时不执行任何操作(
所以具体我的问题是,我真的需要在Sales和Other表之间设置外键约束(如果不是这样的话,那么“ON DELETE NO ACTION ON UPDATE NO ACTION”的查询是什么 )
答案 0 :(得分:1)
在MySQL中,NO ACTION
is an equivalent of RESTRICT
NO ACTION:标准SQL中的关键字。在MySQL中,相当于RESTRICT。如果引用的表中存在相关的外键值,则MySQL服务器拒绝父表的删除或更新操作。某些数据库系统具有延迟检查,NO ACTION是延迟检查。在MySQL中,立即检查外键约束,因此NO ACTION与RESTRICT相同。
以及
RESTRICT:拒绝父表的删除或更新操作。指定RESTRICT(或NO ACTION)与省略ON DELETE或ON UPDATE子句相同。
关于你的上一个问题,你是否真的需要这样的约束是根据你的应用程序的规格确定的。