Теория для лабораторной работы №1 - "Изучение команд DDL", страница 12

ALTER TABLE dss

ADD CONSTRAINT unq UNIQUE(d1,d2);

Ограничение UNQ показывает, что комбинация значений столбцов d1 и d2 является уникальной.

Ограничение PRIMARY KEY

Это ограничение определяет столбец  или группу столбцов как первичный ключ.

Для задания этого ограничения должно выполняться следующие условия:

*  Первичный ключ должен быть только в одной строке таблицы;

*  Ни один столбец, входящий в первичный ключ не должен содержать NULL.

Таблица может содержать только один первичный ключ. Первичный ключ не может быть типов LONG или LONG RAW. Нельзя обозначить один и тот же столбец как первичный ключ (PRIMARY KEY), так и уникальным (UNIQUE). Хотя можно определить один и тот же столбец или их группу как первичный ключ и как внешний ключ.

Пример.

Следующий оператор создаёт таблицу DEPT и определяет и разрешает первичный ключ на столбец DEPTNO:

CREATE TABLE dept

      (deptno  NUMBER(2) CONSTRAINT pk_dept PRIMARY KEY,

       dname   VARCHAR2(9),

       loc     VARCHAR2(10) )

 

Ограничение PK_DEPT определяет столбец DEPTNO как первичный ключ таблицы DEPTNO. Это ограничение показывает, что в таблице DEPT не существует двух одинаковых строк с одинаковыми значениями поля DEPTNO и эти поля не могут быть пустыми.

Эту же задачу можно выполнить через синтаксис табличного ограничения:

CREATE TABLE dept

      (deptno  NUMBER(2),

       dname   VARCHAR2(9),

       loc   VARCHAR2(10),

       CONSTRAINT pk_dept PRIMARY KEY (deptno) )

Определение композиции первичных ключей

Композиция первичных ключей делает первичными несколько столбцов. Композиционный первичный ключ может содержать до 16 столбцов. Для задания композиции ключей необходимо использовать синтаксис ограничений на всю таблицу.

Пример.

Следующий оператор определяет композиционный первичный ключ комбинации столбцов SHIP_NNO и CONTAINER_NO таблицы SHIP_CONT:

ALTER TABLE ship_cont

      ADD PRIMARY KEY (ship_no, container_no) DISABLE