PostgreSQL può eseguire sul posto ADD COLUMN
se la colonna non ha DEFAULT
ed è nulla.
Quindi:usa lo stesso metodo che useresti per gestirlo in una situazione di concorrenza elevata, ma senza i trigger che utilizzeresti per gestirlo con concorrenza.
ALTER TABLE ... ADD COLUMN ...
senza alcunDEFAULT
oNOT NULL
ALTER TABLE ... ALTER COLUMN ... DEFAULT ...
per aggiungere ilDEFAULT
se presenteUPDATE
la tabella in batch di righe per impostare il valore.VACUUM
la tabella tra ogni batch. non usaVACUUM FULL
. Ogni batch deve essere una nuova transazione separata che si impegna prima delVACUUM
.- Se lo si desidera,
ALTER TABLE ... ALTER COLUMN ... NOT NULL
dopo che tutte le righe hanno un valore impostato