我正试图在第一个表的触发器中使用第二个表中的一个属性。为此,我试图将该值加载到一个变量中,然后将其用作比较。然而,每当我尝试测试这个过程时,比较结果都是错误的。
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 ;
我看不出您的触发器有什么问题,但这比写在注释中要复杂一些。
请按照制作
SET @t = -1;
SELECT @t; -- returns -1
update phantom_thieves SET .....
SELECT @t; -should display at sometime 1
这似乎是第三层没有响应1的唯一问题,通过上面的内容,你可以看到你得到了什么。