0

dbdeploy 経由で postgres にトリガーを作成しようとすると、次のエラーが発生します。この問題は、dbdeploy ではなく postgres jdbc の問題のようです。sql ブロッ​​クの最初のセミコロンの後、sql ステートメントは無視されるようです。この問題を乗り越えるための助けをいただければ幸いです。

SQL文字列(pgAdminを介して完全に機能します):

    CREATE FUNCTION trigger_history() RETURNS トリガー
        言語plpgsql
        AS $$
    始める
        INSERT INTO table_history(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) で
4

1 に答える 1

0

問題の原因はセミコロンだと思います。$$;削除するか、次の行に移動してください。$$は行末にある必要があります。

于 2014-06-16T16:08:39.693 に答える