ПРЕЖДЕ ЧЕМ ОБНОВИТЬ ТРИГГЕР И ИЗМЕНЕННЫЕ ПОЛЯ новые и старые - PullRequest
0 голосов
/ 23 июня 2018

ДО ОБНОВЛЕНИЯ TRIGGER И ИЗМЕНЕННЫХ ПОЛЕЙ новых и старых

Если запись обновлена, у меня есть тригер, который манипулирует некоторыми столбцами в данных Одно поле - «QTY», которое может меняться или не изменяться при изменении других столбцов / полей. которые вызывают запуск триггера

Если QTY изменяется, я хочу выполнить логику, если она не изменяется, я не хочу никаких действий для и значение "QTY" останется неизменным.

Кажется, что если QTY не изменяется, то "OLD.QTY" и "NEW.QTY" имеют разные значения

Какое условие я могу использовать, чтобы увидеть, изменилось ли "QTY"

Если "QTY" не изменится, будет значение NEW.QTY = "null" состоит только из

1 Ответ

0 голосов
/ 23 июня 2018

Если столбец c1 не изменился, триггер BEFORE UPDATE будет иметь OLD.c1 и NEW.c1, установленные на одно и то же значение, поскольку это было значение как до, так и после обновления.

Выражение (OLD.c1 <=> NEW.c1) оценивается как TRUE, когда значение столбца не изменяется, иначе FALSE.

Выражение (NOT (OLD.c1 <=> NEW.c1)) оценивается как TRUE, если значение столбца изменяется, иначе FALSE.

Не используйте = или != или <> для сравнений в триггерах обновления, если вы не полностью не поймете значения 3VL , потому что они не равны нулю операторы.

...