使用从查询获得的变量在触发器语句中进行比较的问题

问题描述 投票:0回答:1

我正在尝试在第一个触发器的第二个表中使用属性。为此,我尝试将该值加载到变量中,然后将其用作比较。但是,每当我尝试测试过程时,比较结果都是错误的。

DELIMITER $$

create trigger evolve_persona before update on phantom_thieves

for each row begin 

set @t := (select tier from persona where pname = old.persona);

if((new.persona != old.persona) and (select cast(@t as unsigned) = '1')) then
set

new.st = old.st+10, new.ma = old.ma+10, new.en= old.en+10, new.ag= old.ag+10, 

new.lu= old.lu+20;

end if;

end$$

DELIMITER ;
mysql sql database-trigger
1个回答
0
投票

我看不到您的触发器有什么错,但是,在注释中写起来这有点复杂。

请关注

SET @t = -1;

SELECT @t; -- returns -1

update phantom_thieves SET .....

SELECT @t; -should display at sometime 1

这似乎是tier没有响应1的唯一问题,通过上面的,您可以看到得到的结果。

© www.soinside.com 2019 - 2024. All rights reserved.