Транзакция (transaction) — это группа SQL-операторов, которые выполняются (успешно или неуспешно) как единое целое. Транзакции являются стандартным элементом реляционных баз данных, обеспечивающим согласованность информации. Классический пример транзакции — банковская операция. Рассмотрим два SQL-оператора, с помощью которых осуществляется перевод некоторой суммы, определяемой числом transaction amount, с одного банковского счета (from acct) на другой (to acct).

Предположим, что первый оператор UPDATE выполнен успешно, однако второй не был выполнен в результате ошибки (например, из-за выхода из строя базы данных или сети). Тогда данные оказываются несогласованными — деньги сняты со счета from_acct, но не переведены на счет toacct. He стоит и говорить, что такая ситуация весьма неприятна (особенно если владельцем счета from_acct являетесь вы сами). Но ее можно предотвратить, если объединить два оператора в одну транзакцию. При этом оба оператора будут либо выполнены, либо не выполнены, но это обеспечит согласованность данных.
Транзакция начинается с первого SQL-оператора, поступившего после окончания предшествующей транзакции или после соединения с базой данных. Завершается транзакция оператором COMMIT или ROLLBACK.
| < Предыдущая | Следующая > |
|---|


