PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

ALTER TABLE pour ajouter une nouvelle colonne sur un espace disque limité

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 aucun DEFAULT ou NOT NULL
  • ALTER TABLE ... ALTER COLUMN ... DEFAULT ... pour ajouter le DEFAULT le cas échéant
  • UPDATE la table par lots de lignes pour définir la valeur. VACUUM le tableau entre chaque lot. Ne pas utilisez VACUUM FULL . Chaque lot doit être une nouvelle transaction distincte qui s'engage avant le VACUUM .
  • Si vous le souhaitez, ALTER TABLE ... ALTER COLUMN ... NOT NULL une fois que toutes les lignes ont une valeur définie