Альтернативный вариант создания Primary Key
Часто бывают таблицы, где поле первичного ключа участвует в других, составных индексах.
Обычно в таких случаях создаётся уникальный индекс первичного ключа и составной пользовательский индекс с этим же полем.
Можно сэкономить на индексах и создать ограничение первичного ключа на основе составного индекса, причём индекс может быть объявлен и неуникальным, хотя чисто по своей сути он должен быть уникальным.
Пример.
CREATE TABLE a (b NUMBER, c NUMBER);
CREATE UNIQUE INDEX a#b#c ON a (b,c);
ALTER TABLE a ADD (CONSTRAINT a_pk PRIMARY KEY (b));
Первичный ключ является полнофункциональным, т.е. на него можно , например ссылаться:
CREATE TABLE d (b NUMBER);
ALTER TABLE d ADD (CONSTRAINT d_fk FOREIGN KEY (b) REFERENCES a (b);