Вопросы к Поиску с Алисой
Разница между ограничениями NOT VALID и VALIDATE CONSTRAINT при добавлении нового столбца заключается в их функциях. postgrespro.ru tproger.ru
NOT VALID указывает, что при добавлении ограничения не нужно проводить проверку существующих строк таблицы. postgrespro.ru github.com Команда ADD CONSTRAINT с указанием NOT VALID не сканирует таблицу и может быть зафиксирована немедленно. postgrespro.ru Основное предназначение этого указания — уменьшение влияния операции на параллельные изменения данных. postgrespro.ru
VALIDATE CONSTRAINT проверяет ограничение внешнего ключа или ограничение-проверку, созданное ранее с указанием NOT VALID. postgrespro.ru Команда сканирует всю таблицу, чтобы убедиться, что ограничению удовлетворяют все строки. postgrespro.ru Если ограничение уже помечено как проверенное, ничего не происходит. postgrespro.ru
Таким образом, NOT VALID позволяет сразу применять ограничение, а VALIDATE CONSTRAINT — убедиться, что все данные в таблице соответствуют этому ограничению. github.com