sql >> Database >  >> RDS >> PostgreSQL

WIJZIG TABEL om nieuwe kolom toe te voegen op beperkte schijfruimte

PostgreSQL kan in-place ADD COLUMN als de kolom geen DEFAULT . heeft en is nullble.

Dus:gebruik dezelfde methode die u zou gebruiken om het af te handelen in een situatie met veel gelijktijdigheid, maar zonder de triggers die u zou gebruiken om het met gelijktijdigheid af te handelen.

  • ALTER TABLE ... ADD COLUMN ... zonder enige DEFAULT of NOT NULL
  • ALTER TABLE ... ALTER COLUMN ... DEFAULT ... om de DEFAULT . toe te voegen indien van toepassing
  • UPDATE de tabel in batches van rijen om de waarde in te stellen. VACUUM de tabel tussen elke batch. Doe niet gebruik VACUUM FULL . Elke batch moet een nieuwe, afzonderlijke transactie zijn die wordt uitgevoerd vóór de VACUUM .
  • Indien gewenst, ALTER TABLE ... ALTER COLUMN ... NOT NULL nadat alle rijen een waarde hebben ingesteld


  1. Een dynamische kruistabelquery uitvoeren

  2. MySQL-db lib voor Python 3.x?

  3. Direct toegang krijgen tot de MySQL-database vanaf de iPhone

  4. Is het mogelijk om een ​​MySQL-opgeslagen procedure aan te roepen vanuit Ruby?