PostgreSQL peut faire ADD COLUMN
sur place si la colonne n'a pas de DEFAULT
et vaut nullble.
Donc :utilisez la même méthode que vous utiliseriez pour le gérer dans une situation de forte simultanéité, mais sans les déclencheurs que vous utiliseriez pour le gérer avec la simultanéité.
ALTER TABLE ... ADD COLUMN ...
sans aucunDEFAULT
ouNOT NULL
ALTER TABLE ... ALTER COLUMN ... DEFAULT ...
pour ajouter leDEFAULT
le cas échéantUPDATE
la table par lots de lignes pour définir la valeur.VACUUM
le tableau entre chaque lot. Ne pas utilisezVACUUM FULL
. Chaque lot doit être une nouvelle transaction distincte qui s'engage avant leVACUUM
.- Si vous le souhaitez,
ALTER TABLE ... ALTER COLUMN ... NOT NULL
une fois que toutes les lignes ont une valeur définie