База данных может проверить данные для вас, используя уникальный индекс или ограничение (которые функционально эквивалентны):
create unique index idx_t_student_subject on t(student, subject);
вы также можете определить это как ограничение при создании таблицы:
create table t (
. . .
constraint unq_t_student_subject unique (student, subject)
. . .
);
При попытке вставить повторяющуюся строку вы получите сообщение об ошибке.
Примечание: первичный ключ имел бы такой же эффект, а также определял бы каждый столбец как NOT NULL
.
Вы можете определить «ИДЕНТИФИКАТОР СТУДЕНТА» как «ПЕРВИЧНЫЙ КЛЮЧ» или «УНИКАЛЬНЫЙ ИНДЕКС» –