gpt4 book ai didi

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

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

我创建一个 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<> fiddle here

学习。申请。

关于mysql - 在 MySQL 触发器中将值设置为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59710310/

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