Play2.0データベース進化スクリプトでPostgreSQLトリガーを作成しようとしています。 SQLコードは、比較的簡単で、pgAdminIIIで正常に動作:JDBCを使用してPostgreSQLトリガーを作成する
CREATE OR REPLACE FUNCTION update_modified() RETURNS TRIGGER AS $$
BEGIN
NEW.modified = now();
RETURN NEW;
END;
$$ LANGUAGE 'plpgsql';
しかし、進化を実行しているとき、私はエラーを取得:ERROR: unterminated dollar-quoted string at or near "$$ BEGIN NEW.modified = now()"
。 SQLコードは、関数内で最初に見つかったセミコロン に切り捨てられているようです。私はPostgreSQL用に "9.1-901.jdbc4" JDBCドライバを使用しています。
更新:Evolutions.scalaで
コード(行は219+);
に単純な分割を行います。フレームワーク自体に欠陥があるようです:
// Execute script
s.sql.split(";").map(_.trim).foreach {
case "" =>
case statement => execute(statement)
}
すべての解決策はありますか?
問題については、[こちら](http://archives.postgresql.org/pgsql-jdbc/2010-03/msg00056.php)でも説明されています。 – fynn
トリガーを作成するJavaコードを表示してください。 –
トリガーを作成するコードは、SQLスクリプトが[データベースの進化のスクリプト](http://www.playframework.org/documentation/2.0/Evolutions)であるため、私のものではありません。私は(Scala!)コードが見つかりました[ここ](https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/api/db/evolutions) /Evolutions.scala)。 – fynn