gpt4 book ai didi

MySQL在删除时设置默认字段值

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

我的查询有问题。我有 2 个有关系的表。

  table category
CategoryId name
1 category1
2 category2


table order
orderId CategoryId date Description
1 2 2014-10-10 okay
2 1 2014-10-10 okay2
3 1 2014-10-10 okay3

我的问题是如果某个类别已删除,如何设置类别名称。

最佳答案

这里最重要的问题是关于业务逻辑的。没有类别的订单有意义吗?如果是,那么您可以在删除类别时将 orders 表中的 categoryId 设置为 null。您可以为此使用触发器。

不过,更好的解决方案是将 enabled 列添加到您的类别中,而不是删除类别,只需将其 enabled 设置为 false -这使得它无法用于进一步选择,但保留了先前的信息/关系。当然,这需要对选择显示类别的位置进行一些小更改,即将 whereenabled=true 添加到查询中。

如果您设置删除订单中的类别并将类别 ID 设置为 null,则您要查找的语法是

DELIMITER //

CREATE TRIGGER category_before_delete
BEFORE DELETE ON category FOR EACH ROW
BEGIN
UPDATE `order` SET categoryid=null WHERE categoryid=OLD.categoryid;
END; //

DELIMITER ;

关于MySQL在删除时设置默认字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26679205/

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