Используя пример из статьи Используя облегченные транзакции , пример такой транзакции приводится как:
UPDATE cycling.cyclist_name
SET firstname = 'Roxane'
WHERE id = 4647f6d3-7bd2-4085-8d6c-1229351b5498
IF firstname = 'Roxxane';
Чем это отличается от замены IF
на WHERE
, как в:
UPDATE cycling.cyclist_name
SET firstname = 'Roxane'
WHERE id = 4647f6d3-7bd2-4085-8d6c-1229351b5498
AND firstname = 'Roxxane';
Я предполагаю, что второй не выполняет чтение и запись за один шаг, а скорее выбирает в зависимости от того, где и затем применяет обновление, в то время как первый блокирует запись других процессов в БД при выполнении запроса.