Перейти к содержимому

Транзакции

Используйте ту же базу и выполняйте каждый блок в одном сеансе клиента. В начале примеров сотрудник с идентификатором 1 носит имя Alice.

BEGIN;
UPDATE employees SET name = 'Temporary' WHERE id = 1;
ROLLBACK;

BEGIN открывает явную транзакцию. UPDATE меняет имя внутри этой транзакции, а ROLLBACK отменяет изменение.

SELECT id, name FROM employees ORDER BY id;

Имена остаются Alice, Boris и Clara. Тот же результат виден после закрытия клиента и повторного открытия файловой базы.

BEGIN;
UPDATE employees SET name = 'Alicia' WHERE id = 1;
COMMIT;

Выполните SELECT ещё раз. Имя сотрудника 1 теперь Alicia; Boris и Clara не изменились. COMMIT завершает транзакцию и сохраняет её изменение в соответствии с настроенным режимом надёжности.

Не разделяйте BEGIN и COMMIT между разными процессами CLI. Закрытие клиента не заменяет явную фиксацию. Эти примеры показывают транзакцию одного клиента, но не определяют поведение изоляции при конкурентной работе.

После завершения транзакции введите exit. Учебную базу можно оставить для следующих упражнений. Если она больше не нужна, сначала проверьте значение tutorial_dir в исходной оболочке и удалите только временный каталог, созданный для этого учебника. Не запускайте очистку против рабочей базы.

Следующий шаг — серверное подключение. Локальный CLI открывает файлы напрямую, поэтому для серверного режима нужен TCP-клиент. Установка сервера, параметры подключения и ограничения безопасности рассматриваются в частях руководства об администрировании и клиентских интерфейсах.