Уникальное ограничение на несколько полей в Access 2003 - PullRequest
8 голосов
/ 12 апреля 2011

Я не нашел ответа на мой вопрос, все уникальные вопросы об ограничениях не касались MS Access.

Вопрос в том, как наложить уникальные ограничения на поля из нескольких куч в базе данных MS Access 2003?

Если моя таблица состоит из столбцов id, A, B, C, D, E, F. У меня есть индекс для столбца id , но я хотел бы установить уникальное ограничение для обоих столбцов A и B. Следовательно, у меня может быть повторяющееся значение в столбце A, при условии, что значение в столбце B отличается.

Я хочу подчеркнуть, что не заинтересован в обходном пути, таком как , создающем новый столбец с объединенными значениями из столбцов A и B и создающем ограничение для этого колонка.

Ответы [ 2 ]

21 голосов
/ 13 апреля 2011

Если вы хотите сделать это через пользовательский интерфейс, откройте таблицу в режиме конструктора.Откройте окно индексов.Введите новое имя индекса, определите столбец A, отметьте индекс как уникальный.Затем добавьте вторую строку ниже этой, не указывайте имя индекса в этой строке и определите столбец B. Закройте окно индексов и сохраните таблицу.

Теперь у вас есть уникальный индекс для столбцов A иБЕГ мой уникальный индекс по A & B называется здесь Борис:

enter image description here

6 голосов
/ 12 апреля 2011

В ANSI-92 Query Mode , выполните этот SQL DDL:

ALTER TABLE MyTable ADD 
   CONSTRAINT MyTable__key
      UNIQUE (A, B);

Использование VBA в Access:

CurrentProject.Connection.Execute _
    "ALTER TABLE MyTable ADD CONSTRAINT MyTable__key UNIQUE (A, B);"
...