Ограничения CHECK, NULL и DEFAULT в PostgreSQL имеют разные функции:
- CHECK задаёт ограничение для диапазона значений, которые могут храниться в столбце. 1 После слова CHECK указывается в скобках условие, которому должен соответствовать столбец или несколько столбцов. 1 Если условие не выполняется, операция вставки или обновления будет отклонена. 3 Например, можно использовать CHECK для предотвращения вставки отрицательных значений, дат из прошлого и прочих некорректных данных. 3
- NULL указывает, может ли столбец принимать значение NULL. 1 Если этот атрибут явным образом не будет использован, то по умолчанию столбец будет допускать значение NULL. 1 Исключением является тот случай, когда столбец выступает в роли первичного ключа — в этом случае по умолчанию столбец имеет значение NOT NULL. 1
- DEFAULT определяет значение по умолчанию для столбца. 1 Если при добавлении данных для столбца не будет предусмотрено значение, то для него будет использоваться значение по умолчанию. 1 Значение, установленное с помощью DEFAULT, будет применено только в том случае, если при вставке явно не указано значение и если столбец разрешает NULL. 3 Если столбец запрещает NULL, то будет использовано значение по умолчанию. 3