0

尝试通过 dbdeploy 在 postgres 上创建触发器时出现以下错误。这个问题似乎是一个 postgres jdbc 问题,而不是 dbdeploy。在 sql 块中的第一个分号之后似乎忽略了 sql 语句。感谢您对解决此问题的任何帮助。

sql 字符串(通过 pgAdmin 完美运行):

    CREATE FUNCTION trigger_history() RETURNS 触发器
        语言 plpgsql
        作为$$
    开始
        插入到 table_history(col_one,col_two)
        值(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)
4

1 回答 1

0

我认为这是导致问题的分号:$$;只需将其删除,或将其移至下一行。$$需要在行尾。

于 2014-06-16T16:08:39.693 回答