无法通过dbdeploy为postgres db创建触发器

时间:2014-06-15 06:23:27

标签: function postgresql dbdeploy

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

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

    CREATE FUNCTION trigger_history() RETURNS trigger
        LANGUAGE plpgsql
        AS $$
    BEGIN
        INSERT INTO table_history(col_one, col_two)
        VALUES(NEW.col_one, OLD.col_two);
        RETURN NEW;
    END
    $$;

错误:

Caused by: org.postgresql.util.PSQLException: ERROR: unterminated dollar-quoted string at or near "$ BEGIN INSERT INTO table_history(col_one, col_two) VALUES(NEW.col_one, OLD.col_two)"
  Position: 97
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)

1 个答案:

答案 0 :(得分:0)

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