Я пытаюсь перенести следующий триггер из DB2 в PostgreSQL:
Триггер DB2:
CREATE TRIGGER trig1
AFTER UPDATE ON table1
REFERENCING OLD AS O NEW AS N
FOR EACH ROW MODE DB2SQL
WHEN (N.field1 <> O.field1)
BEGIN ATOMIC
INSERT INTO table1(field1, field2)
VALUES (N.field1, O.field2);
END #
Я переписал триггер в стандарт PostgreSQL (не уверен, что он правильный):
Триггер PostgreSQL:
CREATE OR REPLACE FUNCTION create_table1_history() RETURNS TRIGGER AS $table1_history$
BEGIN
IF (TG_OP = 'UPDATE') THEN
INSERT INTO table1
SELECT
NEW.field1, OLD.field2;
RETURN OLD;
END IF;
RETURN NULL;
END;
$table1_history$ LANGUAGE plpgsql;
CREATE TRIGGER trig1
AFTER UPDATE ON table1
FOR EACH ROW EXECUTE PROCEDURE create_table1_history();
Теперь я не уверен, как добавить следующее условие в мой триггер PostgreSQL?
WHEN (N.field1 <> O.field1)