gpt4 book ai didi

mysql - ON DELETE SET DEFAULT 的解决方法?更好的练习?

转载 作者:行者123 更新时间:2023-11-29 05:09:08 24 4
gpt4 key购买 nike

我在 PhotoID 列上有一个 CONSTRAINT 作为对另一个表中 FK 的引用。此表中的 PhotoID 列也具有约束 NOT NULL,因为它不应为空。

我的DB 不支持ON DELETE SET DEFAULT。如果我不设置 ON DELETE,则无法删除其他表中的条目,但应该可以。但我也无法设置 ON DELETE SET NULL,因为该列应该是 NOT NULL

有解决办法吗?如果不是,这里有什么更好的做法,删除 NOT NULL 约束或 REFERENCE 约束?

最佳答案

假设您在 yourtable(PhotoID) 上有一个引用 reftable(PhotoID) 的外键,您可以使用 on delete 触发器来模拟删除设置默认值:

create trigger trbd_rt_on_delete_set_default_1 before delete on reftable
for each row
update yourtable set PhotoID = 1 where PhotoID = old.PhotoID;

默认条目 PhotoID=1 显然必须存在于您的引用表中。

另一方面,您可能只允许 null 并将其视为默认值。

关于mysql - ON DELETE SET DEFAULT 的解决方法?更好的练习?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42655922/

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