Концепция MVCC (Multiversion Concurrency Control) в PostgreSQL работает следующим образом: поддерживает несколько версий каждой строки в базе данных. 2 Когда транзакция читает или изменяет строку, она работает с конкретной версией, что обеспечивает согласованный моментальный снимок данных на момент начала транзакции. 2 В то же время другие транзакции продолжают видеть свой согласованный моментальный снимок базы данных, на который не влияют операции параллельных транзакций. 2
При выполнении команд ALTER TABLE перезаписывающие формы команды не безопасны с точки зрения MVCC. 35 После перезаписи таблицы параллельным транзакциям она будет казаться пустой, если они используют моментальный снимок, сделанный до перезаписи. 3
Таким образом, после фиксации изменений в таблице параллельные транзакции не смогут увидеть их, даже если используют моментальный снимок, сделанный до фиксации. 1