НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
140 of 150 menu

Команда START TRANSACTION

Команда START TRANSACTION используется для начала транзакции - набора SQL-операций, которые выполняются как единое целое. Все изменения, сделанные внутри транзакции, могут быть либо зафиксированы командой COMMIT, либо отменены командой ROLLBACK.

Синтаксис

Минимальный синтаксис используется в большинстве случаев для начала транзакции без дополнительных параметров:

START TRANSACTION

Расширенный синтаксис позволяет указать режим доступа к данным внутри транзакции:

START TRANSACTION [READ WRITE | READ ONLY]

Полный синтаксис используется для управления консистентностью и режимом выполнения транзакции:

START TRANSACTION [WITH CONSISTENT SNAPSHOT] [READ WRITE | READ ONLY]

Таблицы для примеров

accounts
id name balance
1 Ivan 1000
2 Olga 1500

Пример

Давайте начнём транзакцию и выполним перевод средств между двумя счетами с последующей фиксацией изменений:

START TRANSACTION; UPDATE accounts SET balance = balance - 200 WHERE id = 1; UPDATE accounts SET balance = balance + 200 WHERE id = 2; COMMIT;

Результат выполнения кода:

id name balance
1 Ivan 800
2 Olga 1700

Пример

Давайте начнём транзакцию и отменим изменения с помощью ROLLBACK:

START TRANSACTION; UPDATE accounts SET balance = balance - 500 WHERE id = 1; ROLLBACK;

Результат выполнения кода:

id name balance
1 Ivan 1000
2 Olga 1500

Смотрите также

  • команду COMMIT,
    которая фиксирует изменения
  • команду ROLLBACK,
    которая отменяет изменения
  • команду SAVEPOINT,
    которая ставит промежуточную точку отката
  • команду SELECT ... FOR UPDATE,
    которая блокирует выбранные строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить