On 12/28/2014 12:02 AM, Viktor Shitkovskiy wrote:
> Hello.
>
> I'm trying to execute an sql script file in a single transation. The
> file contains includes for some other scripts which in my example create
> some tables. It looks like this:
> \include ../tables/table1.cre
> \include ../tables/table2.cre
> ...
> \include ../tables/table10.cre
>
> I'm executing it using psql:
> psql -X --set AUTOCOMMIT=off --set ON_ERROR_STOP=on -e
> --single-transaction -d my_db -f my_script.sql
>
> The problem is that errors with the include meta command do not cause a
> transactiopn rollback. e.g. if some of tableX.cre files is missing, any
> changes before its include will be commited. However, if there's some
> SQL syntax error, everyting works as expected.
>
> Is it possible to somehow handle include related errors and rollback the
> active transcation?
>
Where is the \include coming from?
What is in the tableX.cre files?
So if I am following you want a complete rollback on non-SQL or SQL
errors, correct?
> I'm using PostgreSQL 9.2.1.
>
> P.S. Initially I asked this question at dba.stackexchange.com
> <http://dba.stackexchange.com>:
> http://dba.stackexchange.com/questions/87040/rollback-on-include-error-in-psql
--
Adrian Klaver
adrian.klaver@aklaver.com