LINUX.ORG.RU

Сделать 2 поля уникальными, для определённого значения одного из них.

 , ,


0

2

Использую PGSQL. Есть таблица

CREATE TABLE forms (
    id serial PRIMARY KEY,
    account INT NOT NULL,
    author text,
    type INT NOT NULL
);
INSERT INTO  forms(account, author, type) VALUES 
(1, 'Иванов', 11),
(2, 'Сидоров', 11),
(3, 'Сергеев', 12)
Нужно сделать набор полей (account, type) уникальным только для type = 11. Например обе записи нельзя было бы вставить, так как type = 11
(1, 'Иванов', 11),
(1, 'Сидоров', 11)
а например, записи можно было обе вставить, так как type != 11.
(1, 'Иванов', 12),
(1, 'Сидоров', 12)

Как это можно сделать в PGSQL?



Последнее исправление: polin11 (всего исправлений: 1)

Т.е. что-то такое (не проверял):

CREATE UNIQUE INDEX forms_11_idx ON forms (account) WHERE type = 11
maxcom ★★★★★
()
Последнее исправление: maxcom (всего исправлений: 2)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.