LINUX.ORG.RU

Postgresql console, настройки


0

0

Не уверен что именно в этот раздел форума, но помещу сюда.

Кто работал с консолью постгреса, подскажите плз, есть ли способ настроить ее таким образом, чтобы все insert/update/delete запросы выполнялись в транзакции и не происходило автоматического коммита? Т.е. чтобы такое поведение было дефолтным, и не приходилось каждый раз вбивать begin и потом commit || rollback.

А то тут случайно не в ту консоль скопипастил запрос и стало очень хреново боевому серваку (слава богу что хоть бекапы регулярно делаются).

★★★★
Ответ на: комментарий от vga

P.S. либо AUTOCOMMIT туда же, в мане так и написано.

vga ★★
()
Ответ на: комментарий от vga

написать BEGIN; в ~/.psqlrc

Не совсем то, что надо :( Консоль может быть открыта долгое время и там могут выполняться последовательно несколько запросов. Предложенный вариант сработает только до первого вызова commit||rollback. А хотелось бы такого поведения, чтобы перед выполнением любого запроса происходила проверка на наличие активной транзакции, если она есть - выполняем в ней, если нет - открываем новую.

Nagwal ★★★★
() автор топика
Ответ на: комментарий от Nagwal

Ну Вам же сказали — AUTOCOMMIT отключите. Скопипастю для Вас man psql:

       AUTOCOMMIT
              When  on  (the  default), each SQL command is automatically committed upon successful completion. To postpone commit in this mode, you must
              enter a BEGIN or START TRANSACTION SQL command. When off or unset, SQL commands are not committed until you explicitly issue COMMIT or END.
              The  autocommit-off mode works by issuing an implicit BEGIN for you, just before any command that is not already in a transaction block and
              is not itself a BEGIN or other transaction-control command, nor a command that cannot be executed inside a transaction block (such as  VAC‐
              UUM).

              Note:  In autocommit-off mode, you must explicitly abandon any failed transaction by entering ABORT or ROLLBACK.  Also keep in mind that if
              you exit the session without committing, your work will be lost.

              Note: The autocommit-on mode is PostgreSQL’s traditional behavior, but autocommit-off is closer to the SQL spec. If you prefer  autocommit-
              off, you might wish to set it in the system-wide psqlrc file or your ~/.psqlrc file.

Eshkin_kot ★★
()
Ответ на: комментарий от Eshkin_kot

Ну Вам же сказали — AUTOCOMMIT отключите. Скопипастю для Вас man psql:

Ага, спасибо. Я просто прочитал комментарий про автокоммит уже после того как ответ написал.

Nagwal ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.