在 MySQL 触发器中将值设置为变量



我创建一个 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<>小提琴在这里

研究。应用。

相关内容

  • 没有找到相关文章

最新更新