Проблема со сравнением внутри оператора триггера с использованием переменной, полученной из запроса - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь использовать атрибут из 2-й таблицы в триггере 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 ;

1 Ответ

0 голосов
/ 10 ноября 2019

Я не вижу ничего плохого в вашем триггере, но это несколько сложнее, как написано в комментарии.

Пожалуйста, следуйте

SET @t = -1;

SELECT @t; -- returns -1

update phantom_thieves SET .....

SELECT @t; -should display at sometime 1

Это, похоже, единственная проблемаэтот уровень не имеет ответа 1, а с помощью выше вы можете видеть, что вы получаете.

...