PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

ALTER TABLE per aggiungere una nuova colonna su uno spazio su disco limitato

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 alcun DEFAULT o NOT NULL
  • ALTER TABLE ... ALTER COLUMN ... DEFAULT ... per aggiungere il DEFAULT se presente
  • UPDATE la tabella in batch di righe per impostare il valore. VACUUM la tabella tra ogni batch. non usa VACUUM FULL . Ogni batch deve essere una nuova transazione separata che si impegna prima del VACUUM .
  • Se lo si desidera, ALTER TABLE ... ALTER COLUMN ... NOT NULL dopo che tutte le righe hanno un valore impostato