【发布时间】:2020-01-13 03:34:38
【问题描述】:
我创建一个 MySql 触发器并声明一个变量。那么我有一些if条件。 if 内部不能为 if 之外的声明变量设置值。这是可能的?因为我需要该变量数据到另一个函数。我总是得到空值。
这是我的示例代码 设置查询在执行时获取值
delimiter $$
CREATE TRIGGER Table1INSERTCustomer
AFTER INSERT ON Table1
FOR EACH ROW
BEGIN
DECLARE CustomerId integer;
IF (SELECT CustomerID FROM Seller WHERE Id = NEW.ResellerID AND CustomerID IS NOT NULL)
THEN
BEGIN
SET @CustomerId := (SELECT CustomerID FROM Seller WHERE Id = NEW.ResellerID LIMIT 1); <-- This is Problem
END;
END IF;
END;
$$
非常感谢你
【问题讨论】:
-
DECLARE CustomerId integer;和SET @CustomerId :=是两个不同的变量。首先是复合语句的局部变量,其次是连接的用户定义变量。 我需要该变量数据到另一个函数将此值存储在某个服务表中。 -
您好 Akina 感谢您的回复。那么如何将值分配给主要声明的变量?
-
只需
SELECT CustomerID INTO CustomerId FROM Seller WHERE Id = NEW.ResellerID LIMIT 1。但是触发完成后这个变量会被销毁,它的值会丢失。 -
我做了但同样的问题发生
标签: mysql if-statement triggers null declaration