PostgreSQL уникальные ограничения
В этом учебном пособии вы узнаете, как создавать, добавлять и удалять уникальные ограничения в PostgreSQL с синтаксисом и примерами.
Что такое уникальное ограничение в PostgreSQL?
Уникальное ограничение — это отдельное поле или комбинация полей, которые однозначно определяют запись. Некоторые поля могут содержать нулевые значения, если комбинация значений уникальна.
В чем разница между уникальным ограничением и первичным ключом?
| Первичным ключ | Уникальное ограничение |
|---|---|
| Ни одно из полей, которые являются частью первичного ключа, не может содержать нулевое значение. | Некоторые поля, являющиеся частью ограничения уникальности, могут содержать нулевые значения, если комбинация значений уникальна. |
Создать уникальное ограничение — использование оператора CREATE TABLE
Синтаксис для создания уникального ограничения с помощью оператора CREATE TABLE в PostgreSQL:
Как сделать столбец уникальным sql
Для того чтобы гарантировать уникальность значений одного поля используют ключевое слово UNIQUE . Обычно это делается при создании таблицы.
CREATE TABLE products ( id bigint PRIMARY KEY, name text UNIQUE, price numeric );
Если же таблица уже создана, то добавить ограничение уникальности можно с помощью ALTER TABLE . ADD . Это делается следующим образом:
ALTER TABLE users ADD UNIQUE (email)
Как сделать поле уникальным sql
Для этого в SQL используется ключевое слово UNIQUE. Например, вот тут поле email будет уникальным:
CREATE TABLE users ( id BIGINT PRIMARY KEY, first_name VARCHAR (50), last_name VARCHAR (50), email VARCHAR (50) UNIQUE );
SQL — Ограничение UNIQUE
Ограничение UNIQUE гарантирует, что все значения в столбце отличаются. Ограничения UNIQUE и PRIMARY KEY гарантируют уникальность столбца или набора столбцов. Ограничение PRIMARY KEY автоматически имеет ограничение UNIQUE.
Однако для каждой таблицы может быть множество ограничений UNIQUE, но только одно ограничение PRIMARY KEY для каждой таблицы.
CREATE TABLE users ( user_id int NOT NULL, name varchar(255) NOT NULL, fullname varchar(255), gender int, UNIQUE (user_id) );
SQL UNIQUE ограничение в ALTER TABLE
Чтобы создать ограничение UNIQUE в столбце «user_id», когда таблица уже создана, используйте следующее:
ALTER TABLE users ADD UNIQUE (user_id);
Чтобы назвать ограничение UNIQUE и определить ограничение UNIQUE для нескольких столбцов, используйте следующий синтаксис:
ALTER TABLE users ADD CONSTRAINT UC_Users UNIQUE (user_id, name);
DROP a UNIQUE
Чтобы удалить ограничение UNIQUE, используйте следующий SQL:
ALTER TABLE users DROP INDEX UC_Users;
