Ich versuche, einen PostgreSQL-Trigger in einem Play2.0 Datenbank-Entwicklungsskript zu erstellen. Der SQL-Code ist relativ einfach und läuft gut in pgAdminIII:PostgreSQL-Trigger mit JDBC erstellen
CREATE OR REPLACE FUNCTION update_modified() RETURNS TRIGGER AS $$
BEGIN
NEW.modified = now();
RETURN NEW;
END;
$$ LANGUAGE 'plpgsql';
Allerdings habe ich eine Fehlermeldung erhalten, wenn die Entwicklung ausgeführt wird: ERROR: unterminated dollar-quoted string at or near "$$ BEGIN NEW.modified = now()"
. Der SQL-Code scheint bei das erste Semikolon in der Funktion abgeschnitten zu werden. Ich verwende den JDBC-Treiber "9.1-901.jdbc4" für PostgreSQL.
Update:
Der Code in Evolutions.scala (Linie 219+) führt eine einfache Spaltung auf dem ;
. Scheint im Rahmen selbst fehlerhaft zu sein:
// Execute script
s.sql.split(";").map(_.trim).foreach {
case "" =>
case statement => execute(statement)
}
Irgendwelche Lösungen?
Das Problem wurde auch hier [http://archives.postgresql.org/pgsql-jdbc/2010-03/msg00056.php] diskutiert. – fynn
Bitte zeigen Sie uns den Java-Code, der den Trigger erzeugt. –
Der Code, der den Trigger erstellt, ist nicht mein eigener Code, da das SQL-Skript ein [Play Datenbank-Entwicklungsskript] (http://www.playframework.org/documentation/2.0/Evolutions) ist. Ich denke, der (Scala!) Code kann [hier] gefunden werden (https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/api/db/evolutions /Evolutions.scala). – fynn