gpt4 book ai didi

MySQL 创建触发器语法

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

DELIMITER // 
CREATE TRIGGER never_update_with_null
BEFORE UPDATE
ON `table_name`
FOR EACH ROW
BEGIN
IF OLD.name IS NOT NULL AND NEW.name IS NULL THEN
SET NEW.name = OLD.name;
IF OLD.phone IS NOT NULL AND NEW.name IS NULL THEN
SET NEW.phone = OLD.phone;
IF OLD.place IS NOT NULL AND NEW.place IS NULL THEN
SET NEW.place = OLD.place;
END; //
DELIMITER ;

我正在努力实现以下目标:如果某人UPDATEnamephoneplace(列)中的值table_name 并且它的值(更新值)为 NULL 然后该值保持旧值(不更新)。也许更短一点:永远不要更新为 NULL。

上面的 SQL 没有创建触发器,但它也没有抛出任何错误(phpMyAdmin)。它缺少语法吗?已经在每次 OLD.column; 之后用 ENDIF; 尝试过 - 没有改进。谢谢你的解释。

最佳答案

尝试

DELIMITER // 
CREATE TRIGGER never_update_with_null
BEFORE UPDATE
ON `table_name`
FOR EACH ROW
BEGIN
IF OLD.name IS NOT NULL AND NEW.name IS NULL THEN
SET NEW.name = OLD.name;
END IF;
IF OLD.phone IS NOT NULL AND NEW.phone IS NULL THEN
SET NEW.phone = OLD.phone;
END IF;
IF OLD.place IS NOT NULL AND NEW.place IS NULL THEN
SET NEW.place = OLD.place;
END IF;
END; //
DELIMITER ;

关于MySQL 创建触发器语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20723310/

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