PostgreSQL | Уникальность записи в таблице на основе двух столбцов — efim360.ru

PostgreSQL | Уникальность записи в таблице на основе двух столбцов

-- Уникальность по двум столбцам

 

CREATE TABLE test.t_un (

    x bigint,

    y bigint,

    CONSTRAINT t_un_xy_unique UNIQUE (x, y)

)

 

-- Просмотр таблицы

SELECT * FROM test.t_un;

 

-- Вставка нормальных данных

INSERT INTO test.t_un VALUES (1,1), (1,2), (2,1), (2,2);

 

-- Вставка уже существующих данных

-- Вызовет ошибку

INSERT INTO test.t_un VALUES (1,1);

 

Мы создали простую таблицу из двух столбцов. Оба столбца целочисленные.

Для всей таблицы мы создали ограничение уникальности, в которое добавили связь из двух столбцов.

CONSTRAINT t_un_xy_unique UNIQUE (x, y)

После слова UNIQUE мы открыли круглы скобки и через запятую перечислили названия столбцов, по которым хотим хранить уникальное значение.

Попытка вставить одинаковые данные вызовет ошибку.

Ограничение уникальности записи на основе двух столбцов в PostgreSQL
Ограничение уникальности записи на основе двух столбцов в PostgreSQL

 

 

Информационные ссылки

Официальный сайт WEB-оболочки pgAdmin - https://www.pgadmin.org

Официальный сайт СУБД PostgreSQL - https://www.postgresql.org

Оператор CREATE TABLE - https://postgrespro.ru/docs/postgresql/14/sql-createtable