В PostgreSQL CONSTRAINT - это ключевое слово, используемое для создания ограничений на данные в таблице, таких как первичные ключи, внешние ключи, уникальные ограничения и другие. Ограничения CONSTRAINT позволяют определить правила или условия, которые необходимо соблюдать при добавлении, обновлении или удалении данных в таблице.
Вот несколько типов ограничений, которые можно определять с помощью CONSTRAINT в PostgreSQL:
- PRIMARY KEY CONSTRAINT - ограничение, которое определяет первичный ключ для таблицы. Гарантирует уникальность значений и идентификацию каждой записи.
Пример создания первичного ключа с помощью CONSTRAINT:
CREATE TABLE organizations (
org_id SERIAL,
phon VARCHAR(20),
categor VARCHAR(10),
name VARCHAR(50),
CONSTRAINT organizations_id_pkey PRIMARY KEY (phon, categor)
);
- FOREIGN KEY CONSTRAINT - ограничение, которое определяет внешний ключ для связи между двумя таблицами.
Пример создания внешнего ключа с помощью CONSTRAINT:
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
organization_id INT,
order_date DATE,
CONSTRAINT fk_organization_id FOREIGN KEY (organization_id) REFERENCES organizations(org_id)
);
CREATE TABLE products (
product_no integer,
name text,
price numeric CONSTRAINT positive_price CHECK (price > 0)
);
То есть, чтобы создать именованное ограничение, напишите ключевое слово CONSTRAINT, а за ним идентификатор и собственно определение ограничения. (Если вы не определите имя ограничения таким образом, система выберет для него имя за вас.)
CONSTRAINT organizations_id_pkey PRIMARY KEY (phon, categor)
Это означает, что в таблице "organizations" создается первичный ключ с двумя столбцами: "phon" и "categor". Первичный ключ - это уникальное значение, которое идентифицирует каждую запись в таблице. Установка первичного ключа гарантирует уникальность значений в этих столбцах и предотвращает появление дублирующихся записей.