PostgreSQL може да направи на място ADD COLUMN
ако колоната няма DEFAULT
и е nullble.
И така:Използвайте същия метод, който бихте използвали, за да се справите с него в ситуация с висока едновременност, но без тригерите, които бихте използвали, за да го управлявате с едновременност.
ALTER TABLE ... ADD COLUMN ...
безDEFAULT
илиNOT NULL
ALTER TABLE ... ALTER COLUMN ... DEFAULT ...
за да добавитеDEFAULT
ако има такиваUPDATE
таблицата на партиди от редове, за да зададете стойността.VACUUM
таблицата между всяка партида. Не използвайтеVACUUM FULL
. Всяка партида трябва да бъде нова, отделна транзакция, която се ангажира предиVACUUM
.- Ако желаете,
ALTER TABLE ... ALTER COLUMN ... NOT NULL
след като всички редове имат зададена стойност