Ограничение foreign key

Направлено на ограничение целостности ссылок, задает столбец или набор столбцов в качестве внешнего ключа, устанавливает связь с первичным или уникальным ключом в той же самой таблице или между таблицами. Значение внешнего ключа должно совпадать с существующим значением первичного ключа в родительской таблице или быть неопределенным (NULL).

Составной внешний ключ создается с помощью определения на уровне таблицы. Внешний ключ не может быть неопределенным значением.

Внешний ключ описывается комбинацией следующих слов:

FOREIGN KEY – задает значение таблицы как ограничение на уровне таблицы;

REFERENCES – указывает на таблицу и столбец в родительской таблице;

ON DELETE CASCADE- при удалении строки в родительской таблице разрешает удаление зависимых строк в дочерней таблице. Если этот параметр опущен, то строка в родительской таблице не может быть удалена, если на нее имеется ссылка в дочерней таблице.

Синтаксис:

CREATE TABLE имя_таблицы1

(имя_столбца1 тип_данных, FOREIGNKEY(имя_внешнего_ключа) REFERENCES имя_таблицы2 (имя_столбца2),…);

где имя_таблицы2 (имя_столбца2)- это название подчиненной таблицы и соответствующего первичного ключа, с которым будет связана таблица 1(родительская таблица)

Пример 4. Создание таблицы Friends c внешним ключом Phone:

Friends

(Kod_phon integer,

FOREIGN KEY (Phone) REFERENCES Kollegi (Phonekod),

…);

где Kollegi (Phonekod) – имя таблицы Kollegi, которая содержит столбец Phonekod. Phonekod является первичным ключом.

Ограничение CHECK.

Задает условие, которому должны удовлетворять значения столбца или группы столбцов в каждой строке таблицы. Может быть задано как на уровне таблицы, так и на уровне столбца. В выражениях, которые входят в состав ограничения, запрещены:

- ссылки на псевдостолбцы CURRVAL, NEXTVAL, LEVEL и ROWNUM;

- вызовы функций SYSDATE, UID, USER и USERENV;

- запросы со ссылками на другие значения в других строках.

Пример 5. Использование ограничения CHECK

CHECK(Friends Cod Between 31 and 55)

Где Friends – имя таблицы

Cod – имя столбца

Добавление и удаление ограничений

Добавление ограничения.

Синтаксис команды:

ALTER TABLE имя таблицы1

ADD| MODIFY ([CONSTRANT имя_ограничения] тип_ограничения (имя_столбца) REFERENCES имя_таблицы2;

где тип_ограничения – это первичный или внешний ключ

Пример 6. Добавление в таблицу ограничения – первичный ключ.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: