В PostgreSQL по умолчанию транзакции работают в режиме "Read Committed". Это означает, что каждая команда внутри транзакции видит только те данные, которые были зафиксированы на момент начала выполнения этой команды. Иными словами, транзакция не видит незавершённые изменения других транзакций.
Какой режим транзакции по умолчанию в Postgres?
В PostgreSQL по умолчанию транзакции работают в режиме "Read Committed".
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В PostgreSQL по умолчанию транзакции работают в режиме "Read Committed". Это означает, что каждая команда внутри транзакции видит только те данные, которые были зафиксированы на момент начала выполнения этой команды. Иными словами, транзакция не видит незавершённые изменения других транзакций.
Пример:
BEGIN;
-- режим Read Committed по умолчанию
SELECT * FROM users WHERE id = 1;
COMMIT;
Если нужно изменить уровень изоляции, это можно сделать командой:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
или при начале транзакции:
BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;