gpt4 book ai didi

mysql - 测试触发器中的空值的正确方法是什么?

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

我有一个触发器设置为在更新时触发。我正在开发旧版本的 mysql,在它支持引发错误之前,我调用了一个不存在的“raise_error”函数来结束触发器。如果字段不为空,我试图阻止更新字段。我的触发器如下所示:

IF (new.Value <> old.Value AND old.Value IS NOT NULL) THEN
CALL raise_error;
END IF;

这不起作用,因为以下操作已成功完成:

UPDATE Table SET Value = NULL WHERE Value IS NOT NULL

出了什么问题?

最佳答案

使用mysql的null-safe comparison operator <=> ,它认为两个空值“相等”:

IF (new.Value <=> old.Value AND old.Value IS NOT NULL) THEN
CALL raise_error;
END IF;

关于mysql - 测试触发器中的空值的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38297713/

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