Удалить ограничение NOT NULL в Postgres

Udalit Ogranicenie Not Null V Postgres



В реляционных базах данных, таких как PostgreSQL, ограничения имеют решающее значение для поддержания целостности данных и применения определенных правил к столбцам таблицы. Одним из таких ограничений является ограничение «NOT NULL». В этом руководстве мы рассмотрим концепцию ограничения NOT NULL и предоставим пошаговое руководство по его созданию и удалению в PostgreSQL.

Что такое ограничение NOT NULL?

Ограничение NOT NULL гарантирует, что столбец не может содержать нулевые значения, которые требуют, чтобы каждая строка в таблице имела ненулевое значение для этого конкретного столбца.

Требования к учебнику:

Чтобы следовать инструкциям, приведенным в этом посте, мы предполагаем, что у вас есть следующие требования:







  1. Установленный сервер PostgreSQL на вашем компьютере
  2. Базовые знания SQL
  3. Разрешение на создание объектов таблицы базы данных, таких как ограничения, функции и т. д.

Пример таблицы:

Давайте начнем с создания примера таблицы со столбцами, которые содержат ограничение не null. Возьмите следующий оператор создания таблицы, который устанавливает базовую таблицу, напоминающую таблицу wp_users в WordPress:



СОЗДАТЬ ТАБЛИЦУ wp_users (
ID СЕРИЙНЫЙ ПЕРВИЧНЫЙ КЛЮЧ,
user_login VARCHAR(60) НЕ NULL,
user_pass VARCHAR(255) НЕ NULL,
user_nicename VARCHAR(50) НЕ NULL,
user_email VARCHAR(100) НЕ NULL,
user_url VARCHAR(100),
user_registered TIMESTAMP NOT NULL DEFAULT current_timestamp,
user_activation_key VARCHAR(255),
user_status INT NOT NULL ПО УМОЛЧАНИЮ 0,
отображаемое_имя VARCHAR(250) НЕ NULL
);

Из данного запроса вы заметите, что большинство столбцов содержат ограничение NOT NULL.



Самый эффективный способ создания ограничения NOT NULL в данном столбце — во время создания таблицы. Это гарантирует, что все данные, добавляемые в таблицу, соответствуют правилам ограничения.





Однако если вы добавите ограничение в существующую таблицу, правила будут применяться только к данным, которые добавляются после ограничения, а не к каким-либо существующим данным. Это может привести к несоответствиям, особенно в больших таблицах.

Добавьте ограничение NOT NULL

В некоторых случаях может потребоваться добавить ограничение NOT NULL к существующей таблице. Например, вы можете использовать команду ALTER TABLE, за которой следует предложение ALTER COLUMN.



Синтаксис следующий:

ИЗМЕНИТЬ ТАБЛИЦУ table_name
ALTER COLUMN имя_столбца SET NOT NULL;

Замените table_name на вашу целевую таблицу, а column_name на целевой столбец, к которому вы хотите применить ограничение.

Проверьте ограничение

Вы можете убедиться, что ограничение существует для данной таблицы, используя команду «\d» в утилите PSQL.

\d имя_таблицы

Пример:

sample_db=# \d wp_users;

В результате получается следующее:

Удалить ограничение NOT NULL

Вы также можете удалить ограничение NOT NULL из данного столбца. Для этого мы можем использовать предложения ALTER TABLE и ALTER COLUMN следующим образом:

ИЗМЕНИТЬ ТАБЛИЦУ table_name
ALTER COLUMN имя_столбца DROP NOT NULL;

Например, чтобы удалить ограничение NOT NULL из столбца user_url таблицы wp_users, мы можем выполнить следующий запрос:

ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;

Это должно удалить ограничение из таблицы.

Заключение

В этом руководстве мы рассмотрели, как мы можем работать с ограничением NOT NOLL в PostgreSQL. Мы также рассмотрели, как удалить существующее ограничение NOT NULL из заданного столбца.