gpt4 book ai didi

MySQL 触发器 : error when checking if variable exists

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

我有一个触发器,它引用一个全局变量,该变量来自一个删除查询,该查询将触发器设置为关闭:

DELIMITER ;;

CREATE TRIGGER test_trigger BEFORE DELETE ON test_table FOR EACH ROW
BEGIN

IF (SELECT @userID IS NULL)
THEN @userID := 0
END IF;

END
;;

DELIMITER ;

出于某种原因,我收到了 SQL 错误:

SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@userID := 0

我不明白这个,这是一个非常基本的 IF 语句,为什么它不起作用?

更新:我很困惑,我已经试过了

IF TRUE
THEN TRUE
END IF;

它仍然会抛出错误...严重吗?

更新 2:已解决这确实有效,但是非常奇怪

IF (SELECT @userID IS NULL) 
THEN SET userID = 0;
END IF;

显然您需要在 IF 语句中使用分号?

最佳答案

CREATE TRIGGER test_trigger BEFORE DELETE ON test_table FOR EACH ROW 
BEGIN
IF (SELECT @userID IS NULL)
THEN
SET @userID = 0;
END IF;
END;

关于MySQL 触发器 : error when checking if variable exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14749491/

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