4.5.6. Составные первичные ключи

Ограничение PRIMARY KEY может также быть применено для нескольких полей, составляющих уникальную комбинацию зна­чений — составной первичный ключ. Рассмотрим таблицу EXAM MARKS. Очевидно, что ни к полю идентификатора студента (STUDENT_ID), ни к полю идентификатора предмета обучения (EXAM ID) по отдельности нельзя предъявить требование уни­кальности. Однако для того, чтобы в таблице не могли появиться разные записи для одинаковых комбинаций значений полей STUDENTID и EXAMID (конкретный студент на конкретном экзамене не может получить более одной оценки), имеет смысл объявить уникальной комбинацию этих полей. Для этого мы мо­жем применить ограничение таблицы PRIMARY KEY объявив па­ру EXAMJD И STUDENTJD ПерВИЧНЫМ КЛЮЧОМ Таблицы.

CREATE TABLE NEW_EXAM_MARKS

(STUDENTJD   INTEGER NOT NULL, SUBJ_ID    INTEGER NOT NULL, MARK INTEGER, DATA    DATE,

CONSTRAINT EX_PR_KEY PRIMARY KEY    (EXAM  Ю, STUDENT ID));