tutorial postgres postgre guide example commands postgresql

postgresql - guide - Postgres sql falla en el error de script



psql guide (3)

¿Hay alguna manera de especificar que al ejecutar un script sql se detiene al encontrar el primer error en el script, por lo general continúa, independientemente de los errores anteriores.

Gracias


Creo que la solución para agregar lo siguiente a .psqlrc está lejos de la perfección

/set ON_ERROR_STOP on

existe una forma mucho más simple y conveniente: use psql con el parámetro:

psql -v ON_ERROR_STOP=1

es mejor usar también el parámetro -X desactivar el uso del archivo .psqlrc. Funciona perfectamente para mi

ps la solución encontrada en la gran publicación de Peter Eisentraut. Gracias, Peter! http://petereisentraut.blogspot.com/2010/03/running-sql-scripts-with-psql.html


No es exactamente lo que quieres, pero si comienzas tu script con begin transaction; y termina con la end transaction; , en realidad saltará todo después del primer error, y luego revertirá todo lo que hizo antes del error.


Supongo que está utilizando psql , esto podría ser útil para agregar a su archivo ~/.psqlrc .

/set ON_ERROR_STOP on

Esto lo hará abortar en el primer error. Si no lo tiene, incluso con una transacción, seguirá ejecutando su secuencia de comandos pero fallará en todo hasta el final de su secuencia de comandos.

Y probablemente quiera usar una transacción como dijo Paul. Que también se puede hacer con psql --single-transaction ... si no quieres alterar el script.

Así que un ejemplo completo, con ON_ERROR_STOP en su .psqlrc:

psql --single-transaction --file /your/script.sql