Проверка значения в триггере
Имеется таблица, у которой есть триггер AFTER UPDATE. При обновление записи триггер перемещает старые значения записи в архивную таблицу. Как мне в триггере проверить было ли изменено значение и если нет, то вставить NULL?
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
Тут немного сложнее, чем просто сравнить. Надо ещё учесть, что как старое, так и новое значения могут быть NULL.
Если не оптимизировать, то следует использовать такое выражение:
INSERT INTO archive ( column,
... )
VALUES ( CASE WHEN OLD.column IS NULL THEN NULL
WHEN NEW.column IS NULL THEN OLD.column
WHEN OLD.column = NEW.column THEN NULL
ELSE OLD.column
END ,
... )
Можно попробовать немного упростить, но не вижу особого смысла... да и лениво.