powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Огрничение по уникальности сочетаний
4 сообщений из 4, страница 1 из 1
Огрничение по уникальности сочетаний
    #38835879
big-trot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такая схема
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
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
Код: sql
1.
2.
INSERT INTO table1 (id) VALUES (1);
INSERT INTO table1 (id) VALUES (2);



Вставляем запись в table2
Код: sql
1.
INSERT INTO table1 (id1,id2) VALUES (1,2);



Вопрос - как запретить вставку в table2 записи (1,2) в другом сочетании (2,1) ?
Код: sql
1.
INSERT INTO table1 (id1,id2) VALUES (2,1);



Как это сделать без триггеров ?
Есть ли возможность использовать ограничения?
Где посмотреть, что почитать ?

Спасибо.
...
Рейтинг: 0 / 0
Огрничение по уникальности сочетаний
    #38835932
big-trot,

уникальное ограничение по least(id1, id2), greatest(id1, id2)?
...
Рейтинг: 0 / 0
Огрничение по уникальности сочетаний
    #38835950
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-trot,

я бы check ом запретил бы вставку записей где id2<id1 и все.
Это более правильно чем хитрый Unique придумывать.

--Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Огрничение по уникальности сочетаний
    #38838716
Фотография torbasow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эх,

как это возможно технически — ограничение уникальности на выражение? Вы имеете в виду то же, что и мне пришло в голову,— exclusion constraint ? Они довольно лаконично описаны в документации.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Огрничение по уникальности сочетаний
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]