Невозможно создать триггер через dbdeploy для postgres db

Я получаю следующую ошибку при попытке создать триггер на postgres через dbdeploy. Похоже, что проблема связана с jdbc postgres, а не с dbdeploy. Кажется, оператор sql игнорируется после первой точки с запятой в блоке sql. Любая помощь в преодолении этой проблемы приветствуется.

Строка sql (которая отлично работает через pgAdmin):

    CREATE FUNCTION trigger_history () RETURNS триггер
        ЯЗЫК plpgsql
        AS $$
    НАЧАТЬ
        INSERT INTO таблица_история (col_one, col_two)
        VALUES(NEW.col_one, OLD.col_two);
        ВЕРНУТЬ НОВЫЙ;
    КОНЕЦ
    $$;

Ошибка:

Вызывается: org.postgresql.util.PSQLException: ОШИБКА: неопределенная строка в кавычках, указанная в долларах, в или около "$ BEGIN INSERT INTO table_history(col_one, col_two) VALUES(NEW.col_one, OLD.col_two)"
  Позиция: 97
    в org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161)
    в org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890)
    в org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)

1 ответ

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

Другие вопросы по тегам