sql unique и установка ограничений на вставки - PullRequest
1 голос
/ 23 августа 2009

У меня есть база данных, где мне нужно избегать вставки дубликатов. Требования:

Для подмножества строк с совпадающим столбцом 1 не может быть строк с таким же столбцом 2.

Для подмножества строк с совпадающим столбцом 1 не может быть строк с одинаковыми столбцами 3 и 4.

Я новичок в SQL, так есть ли способ установить эти отношения, когда я создаю базу данных (создать таблицу), или мне нужно сделать выбор и выполнить эти проверки вручную перед вставкой в ​​таблицу?

Ответы [ 2 ]

4 голосов
/ 23 августа 2009

По сути, столбцы 1 и 2 должны быть уникальными, а столбцы 1,3 и 4 - уникальными. Поэтому, когда вы создаете таблицу, вы можете использовать два УНИКАЛЬНЫХ состава:

CREATE TABLE tbl (
  col1 varchar(255),
  col2 varchar(255),
  col3 varchar(255),
  col4 varchar(255),
  CONSTRAINT uc_first UNIQUE(col1, col2),
  CONSTRAINT uc_second UNIQUE(col1, col3, col4)
)
0 голосов
/ 23 августа 2009

Просто чтобы шарик катился ...

Не могли бы вы сразу же вернуться после вставки и удаления дублированных строк на основании упомянутых вами ограничений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...