Некоторые ограничения при добавлении столбца с постоянным значением по умолчанию в PostgreSQL:
- В старых версиях (до PostgreSQL 11) при выполнении команды по добавлению столбца со значением по умолчанию происходит перезапись всех строк в таблице. habr.com Если таблица большая, это может занять много времени. habr.com Кроме того, на время выполнения захватывается строгая блокировка (AccessExclusive), и все запросы к таблице также блокируются. habr.com
- Если значение по умолчанию является изменяемым (например, вычисляется с помощью функции, такой как clock_timestamp()), то необходимо обновить каждую строку значением, рассчитанным на момент выполнения команды ALTER TABLE. postgrespro.com
- Если устанавливать значения по умолчанию одновременно с созданием столбца, то произойдёт блокировка таблицы на время установки этих значений. otus.ru tproger.ru
С версии PostgreSQL 11 для неволатильных значений по умолчанию эти ограничения не актуальны. otus.ru tproger.ru Значение по умолчанию сохраняется в специальную таблицу pg_attribute, и в дальнейшем при выполнении SELECT все пустые значения этого столбца будут «на лету» заменяться на это значение. habr.com