Как исправить ошибку DB2 "Неожиданный токен CREATE OR REPLACE TRIGGER был найден после" BEGIN-OF-STATEMENT " - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь создать триггер db2, чтобы история транзакций поддерживалась в отдельной таблице.Но я получаю сообщение об ошибке ниже и не могу продолжить.

Ошибка SQL [42601]: неожиданный токен «CREATE TRIGGER HISTORY_TRIGGER AFTER» был найден после «BEGIN-OF-STATEMENT».Ожидаемые токены могут включать: "" .. SQLCODE = -104, SQLSTATE = 42601, DRIVER = 4.22.29

Я выполняю sql через dbeaver.

Я уже пробовал Неожиданный токен "CREATE TRIGGER , и это не помогает.

CREATE TRIGGER HISTORY_TRIGGER AFTER INSERT OR UPDATE ON MY_SCHEMA.TRANSACTIONS_TABLE
REFERENCING OLD ROW AS OLD
            NEW ROW AS NEW
BEGIN
    INSERT INTO MY_SCHEMA.HISTORY_TABLE
    (ID, EMAIL, REASON, ROLE, TIMESTAMP)
    VALUES(NEW.ID, NEW.EMAIL, NEW.REASON, NEW.ROLE, CURRENT_TIMESTAMP);
END

Пожалуйста, помогите мне выяснить, что не так с моим SQL-триггером.

1 Ответ

0 голосов
/ 28 декабря 2018

Окно-> Настройки-> Общие-> Редакторы-> Редактор SQL-> Обработка SQL-> Разделитель операторов: @

CREATE OR REPLACE TRIGGER HISTORY_TRIGGER 
AFTER INSERT OR UPDATE ON MY_SCHEMA.TRANSACTIONS_TABLE
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
BEGIN
    INSERT INTO MY_SCHEMA.HISTORY_TABLE (ID, EMAIL, REASON, ROLE, TIMESTAMP)
    VALUES(NEW.ID, NEW.EMAIL, NEW.REASON, NEW.ROLE, CURRENT_TIMESTAMP);
END@
...