Ошибка уникального индекса - PullRequest
2 голосов
/ 28 мая 2019

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

Проверьте индекс, вставив запись с повторяющимся идентификатором сотрудника

CREATE INDEX empid_index ON staff (empId)

Ожидается сообщение об ошибке дублированного идентификатора, но ошибки не возникает, запись все еще сохраняется.

1 Ответ

0 голосов
/ 28 мая 2019

Не создавать уникальные индексы: вместо этого добавьте уникальные ограничения в таблицу. Например:

create table staff (
  ...
  constraint unique_empid unique (empid),
  ...
);

Несмотря на то, что уникальные индексы не позволят вам вставить дублирующиеся строки с этим значением, вам не хватит других функций ограничения, таких как экспорт внешних ключей, которые могут вам понадобиться позже.

...