Re: Rollback on include error in psql

Поиск
Список
Период
Сортировка
От Viktor Shitkovskiy
Тема Re: Rollback on include error in psql
Дата
Msg-id CAK7FUCxWGMPZvKy32B2hZTZmQcOP+DQLK=0m4Ou0zSr9oEPEpQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Rollback on include error in psql  (Melvin Davidson <melvin6925@gmail.com>)
Список pgsql-general
I use --single-transaction flag. But anyway, adding BEGIN and COMMIT doesn't change anything. I stil get that problem.

On Sun, Dec 28, 2014 at 5:43 PM, Melvin Davidson <melvin6925@gmail.com> wrote:
You did not show the complete script.
Did you remember to start the "transaction" with BEGIN; and end with COMMIT;?
eg:
BEGIN;
\include ../tables/table1.cre
\include ../tables/table2.cre
...
\include ../tables/table10.cre
COMMIT;


On Sun, Dec 28, 2014 at 3:02 AM, Viktor Shitkovskiy <hanksmail@gmail.com> 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?

I'm using PostgreSQL 9.2.1.




--
Melvin Davidson
I reserve the right to fantasize.  Whether or not you
wish to share my fantasy is entirely up to you.


В списке pgsql-general по дате отправления:

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: Rollback on include error in psql
Следующее
От: Viktor Shitkovskiy
Дата:
Сообщение: Re: Rollback on include error in psql