Основное отличие добавления столбца с указанием NOT VALID от обычного добавления столбца в PostgreSQL заключается в отсутствии проверки существующих строк при добавлении ограничения. 12
Обычно команда ADD CONSTRAINT сканирует таблицу, чтобы убедиться, что все существующие строки удовлетворяют новому ограничению. 12 Это может занять длительное время и препятствовать внесению других изменений. 1
С указанием NOT VALID команда ADD CONSTRAINT не сканирует таблицу и может быть зафиксирована немедленно. 1 Затем можно выполнить команду VALIDATE CONSTRAINT, которая проверит все существующие строки на соответствие ограничению. 1
Указание NOT VALID полезно в случаях, когда известно, что в таблице есть строки, нарушающие ограничения. 1 После создания ограничения добавить новые недопустимые строки будет невозможно, а все существующие проблемы могут разрешаться в удобное время. 1