У меня есть таблица, скажем:
CREATE TABLE test (
id SERIAL UNIQUE,
first integer NOT NULL,
second integer NOT NULL,
data text NOT NULL
);
Как применить проверку таким образом, чтобы второй столбец был «уникальным» по отношению к первому столбцу, но допускались повторяющиеся значения?Другими словами, допускается только одно значение во втором для каждого из значений первого столбца.После того, как значение было вставлено в столбец 'first', только дополнительные значения, которые соответствуют существующей (первой, второй) комбинации столбцов, могут быть вставлены снова.
Например, с учетом:
INSERT INTO test (first, second, data) VALUES (1, 2, 'test');
Нарушение ограничения для:
INSERT INTO test (first, second, data) VALUES (1, 3, 'testing');
может произойти, но
INSERT INTO test (first, second, data) VALUES (1, 2, 'testing');
или
INSERT INTO test (first, second, data) VALUES (2, 1, 'testing');
или
INSERT INTO test (first, second, data) VALUES (2, 2, 'testing');
будет успешным.