Я создал уникальный индекс идентификаторов сотрудников для существующей таблицы. Я сделал тест и ввел идентификатор сотрудника, уже сохраненный в базе данных, и база данных все еще сохранила его. Когда я выполняю поиск по этому идентификатору, в нем отображаются обе записи.
Проверьте индекс, вставив запись с повторяющимся идентификатором сотрудника.
CREATE INDEX empid_index ON staff (empId)
Ожидал сообщение об ошибке о дублирующемся ID, но ошибки не вышло, запись все равно сохранилась.
Спасибо за вашу помощь, ценю это.
Почему это не PRIMARY KEY
??
Не создавайте уникальные индексы: вместо этого добавьте в таблицу уникальные ограничения. Например:
create table staff (
...
constraint unique_empid unique (empid),
...
);
Несмотря на то, что уникальные индексы не позволят вам вставлять повторяющиеся строки с этим значением, вы будете упускать другие функции ограничения, такие как экспорт внешних ключей, которые могут вам понадобиться позже.
Вы не создали уникальный индекс с этим предложением. Для этого вам нужно сделать СОЗДАТЬ УНИКАЛЬНЫЙ ИНДЕКС empid_index НА персонал (empId)