Estoy intentando crear un desencadenador PostgreSQL en una secuencia de comandos de evolución de base de datos Play2.0. El código SQL es relativamente fácil y funciona muy bien en pgAdminIII:Crear desencadenador PostgreSQL mediante JDBC
CREATE OR REPLACE FUNCTION update_modified() RETURNS TRIGGER AS $$
BEGIN
NEW.modified = now();
RETURN NEW;
END;
$$ LANGUAGE 'plpgsql';
Sin embargo, me da un error cuando se ejecuta la evolución: ERROR: unterminated dollar-quoted string at or near "$$ BEGIN NEW.modified = now()"
. El código SQL parece truncado en el primer punto y coma encontrado en la función. Estoy usando el controlador JDBC "9.1-901.jdbc4" para PostgreSQL.
Actualización:
El código en Evolutions.scala (línea 219+) realiza una fractura simple en la ;
. Parece estar defectuoso en el marco mismo:
// Execute script
s.sql.split(";").map(_.trim).foreach {
case "" =>
case statement => execute(statement)
}
¿Alguna solución?
El problema ha sido discutido [aquí] (http://archives.postgresql.org/pgsql-jdbc/2010-03/msg00056.php) también. – fynn
Por favor, muéstrenos el código Java que crea el activador. –
El código que crea el desencadenador no es mío, ya que el guión sql es un [guión de evolución de la base de datos de Play] (http://www.playframework.org/documentation/2.0/Evolutions). Supongo que el código (de Scala!) Se puede encontrar [aquí] (https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/api/db/evolutions /Evolutions.scala). – fynn