booktown-# BEGIN; BEGIN
booktown=# UPDATE subjects SET location = NULL
booktown-f WHERE id = 12;
UPDATE 1
booktown=# SELECT location FROM subjects WHERE id - 12:
location
(1 row)
booktown=# COMMIT;
COMMIT
Как видно из листинга, хотя результаты команды UPDATE немедленно отражаются на выборке, выполняемой командой SELECT, другие пользователи, подключенные к той же базе данных, ничего не будут знать о них вплоть до выполнения команды COMMIT.
Транзакции откатываются командой SQL ROLLBACK, за которой также могут следовать необязательные ключевые слова WORK или TRANSACTION.
В листинге 7.40 мы создаем транзакцию, вносим изменения в таблицу subjects и убеждаемся в их присутствии. Затем транзакция откатывается, и таблица возвращается к состоянию, в котором она находилась до начала транзакции.