Uso Postgresql con las extensiones PostGIS para el análisis espacial ad-hoc. Generalmente construyo y expido consultas SQL a mano desde psql. Siempre envuelvo una sesión de análisis dentro de una transacción, por lo que si emite una consulta destructiva puedo revertirla.¿Puedo pedirle a Postgresql que ignore los errores dentro de una transacción?
Sin embargo, cuando publico una consulta que contiene un error, cancela la transacción. Cualquier consulta posterior provocará la siguiente advertencia:
ERROR: current transaction is aborted, commands ignored until end of transaction block
¿Hay alguna manera de desactivar este comportamiento? Es tedioso deshacer la transacción y volver a ejecutar las consultas anteriores cada vez que hago un error tipográfico.
la variable ON_ERROR_ROLLBACK hace exactamente lo que yo quería :) – fmark
'ON_ERROR_ROLLBACK' parece una característica del cliente psql, no se postgrega a sí mismo (por lo que no puede usar esto desde una aplicación de base de datos, solo desde la línea de comandos). – Glyph
@Glyph: sí, esa es una característica de psql, está específicamente orientada al uso interactivo, que era el escenario del PO. Es difícil para mí pensar en un escenario de aplicación cuando el comportamiento deseado tendría sentido. – leonbloy