Невозможно создать триггер через 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 ответ
Я думаю, что это точка с запятой, вызывающая проблему: $$;
просто удалите его или переместите на следующую строку. $$
должен быть в конце строки.