我创建一个 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;
$$
谢谢
建模示例。
create table test1 (id int, val int);
insert into test1 values (1,11), (2,22);
select * from test1;
ID | val -: |--: 1 | 11 2 | 22
create table test2 (id int, val int);
create trigger tr after insert on test2 for each row select test1.val into @var from test1 where test1.id = NEW.id;
insert into test2 values (1,111);
select * from test1;
ID | val -: |--: 1 | 11 2 | 22
select * from test2;
ID | val -: |--: 1 |111
|select @var;
@var | |---: | | 11 |
db<>小提琴在这里
研究。应用。