O PostgreSQL pode fazer
ADD COLUMN
no local se a coluna não tiver DEFAULT
e é nulo. Portanto:use o mesmo método que você usaria para lidar com isso em uma situação de alta simultaneidade, mas sem os gatilhos que você usaria para lidar com isso com simultaneidade.
ALTER TABLE ... ADD COLUMN ...
sem nenhumDEFAULT
ouNOT NULL
ALTER TABLE ... ALTER COLUMN ... DEFAULT ...
para adicionar oDEFAULT
se houverUPDATE
a tabela em lotes de linhas para definir o valor.VACUUM
a tabela entre cada lote. não useVACUUM FULL
. Cada lote deve ser uma transação nova e separada que é confirmada antes doVACUUM
.- Se desejar,
ALTER TABLE ... ALTER COLUMN ... NOT NULL
depois de todas as linhas terem um valor definido