Есть такая схема
CREATE TABLE public.table1 (
id SERIAL,
CONSTRAINT table1_pkey PRIMARY KEY(id)
)
WITH (oids = false);
CREATE TABLE public.table2 (
id1 INTEGER NOT NULL,
id2 INTEGER NOT NULL,
CONSTRAINT table2_pkey PRIMARY KEY(id1, id2),
CONSTRAINT table2_fk FOREIGN KEY (id1)
REFERENCES public.table1(id)
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE,
CONSTRAINT table2_fk1 FOREIGN KEY (id2)
REFERENCES public.table1(id)
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE
)
WITH (oids = false);
ALTER TABLE public.table2
ALTER COLUMN id1 SET STATISTICS 0;
Вставляем две записи в table1
INSERT INTO table1 (id) VALUES (1);
INSERT INTO table1 (id) VALUES (2);
Вставляем запись в table2
INSERT INTO table1 (id1,id2) VALUES (1,2);
Вопрос - как запретить вставку в table2 записи (1,2) в другом сочетании (2,1) ?
INSERT INTO table1 (id1,id2) VALUES (2,1);
Как это сделать без триггеров ?
Есть ли возможность использовать ограничения?
Где посмотреть, что почитать ?
Спасибо.