Учебник PostgreSQL 7.3.3


Транзакции - часть 2


BEGIN; UPDATE accounts SET balance = balance - 100.00 WHERE name = 'Alice'; -- и т.д. .... COMMIT;

Если во время выполнения транзакции мы решаем, что не хотим завершать еЈ (например мы получили извещение о том, что счет Alice отрицательный), то мы вместо команды COMMIT выдаем команду ROLLBACK и все наши изменения от начала транзакции, будут отменены.

PostgreSQL фактически считает каждый оператор SQL запущенным в транзакции. Если вы не указываете команду BEGIN, то каждый отдельный оператор имеет неявную команду BEGIN перед оператором и (при успешной отработке оператора) команду COMMIT после оператора. Группа операторов заключаемая в блок между BEGIN и COMMIT

иногда называется транзакционным блоком.

Note: Некоторые клиентские библиотеки выполняют команды BEGIN и COMMIT автоматически, так что вы можете без вопросов организовывать транзакционные блоки. Проверьте документацию по тому интерфейсу, который вы используете.




Начало  Назад  Вперед