Множественные ограничения FOREIGN KEY



ORACLE позволяет, чтобы на данный (родительский) столбец имелись ссылки через множественные ограничения FOREIGN KEY; в действительности не существует ограничения на количество зависимых ключей. Такая ситуация может иметь место, в частности, если один и тот же столбец является частью двух различных составных внешних ключей.

Использование ограничений целостности CHECK

Условие ограничения CHECK имеет следующие ограничения:

Это условие должно быть булевским выражением, вычисляемым над значениями вставляемой или обновляемой строки.

Это условие не может содержать подзапросы или последовательности.

Это условие не может включать функции SQL SYSDATE, UID, USER или USERENV.

Это условие не может содержать псевдостолбцы LEVEL или ROWNUM; обратитесь к документу ORACLE7 Server SQL Language Reference Manual за описанием этих псевдостолбцов.

Определение ограничений целостности

Определяйте ограничение целостности с помощью фразы CONSTRAINT команды SQL CREATE TABLE или ALTER TABLE.

Именование ограничений целостности

Определяя ограничения целостности NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY и CHECK, назначайте им имена в опции CONSTRAINT. Имя ограничения должно быть уникальным среди всех принадлежащих вам имен ограничений.

Включение и выключение ограничений целостности при их определении

По умолчанию, когда ограничение целостности определяется в предложении CREATE TABLE или ALTER TABLE, оно автоматически включается (вводится в действие) ORACLE, если для него явно не специфицировано выключенное состояние посредством фразы DISABLE. 

Использование процедур и пакетов

Создание независимых процедур и функций

Независимая хранимая процедура имеет две части:

СПЕЦИФИКАЦИЯ объявляет процедуру или функцию.

ТЕЛО определяет процедуру или функцию. Тело процедуры состоит из блока PL/SQL (который содержит предложения SQL и PL/SQL).

Обе части процедуры создаются в одном шаге с помощью команды CREATE PROCEDURE или CREATE FUNCTION.

Создание пакетов

Объявление пакета имеет две части:

СПЕЦИФИКАЦИЯ ПАКЕТА содержит объявления процедур пакета и функций, переменных, констант и исключений, которые доступны извне пакета.

ТЕЛО ПАКЕТА определяет процедуры и функции, курсоры и исключения, которые были объявлены в спецификации пакета. Тело пакета может также определять процедуры, функции, переменные, константы, курсоры и исключения, которые не были объявлены в спецификации пакета; однако эти объекты доступны лишь внутри сферы пакета. Каждая часть пакета создается отдельной командой.

Для создания тела пакета используйте команду CREATE PACKAGE BODY, чтобы специфицировать код для общих процедур и функций, объявленных в спецификации пакета.

Вызов процедур

Процедуры можно вызывать из многих различных окружений. Например:

Процедура может быть вызвана из тела другой процедуры или из триггера.

Процедура может быть вызвана пользователем интерактивно из инструмента ORACLE (такого как SQL*Plus).

Процедура может быть вызвана явно из приложения (такого как приложение SQL*Forms или программа прекомпилятора).

Замена процедур и пакетов

Невозможно явно изменить независимую процедуру или пакет; такой объект должен быть заменен новым определением процедуры или пакета. Чтобы заменить процедуру или пакет, вы должны включить опцию OR REPLACE в соответствующее предложение CREATE PROCEDURE, CREATE FUNCTION, CREATE PACKAGE или CREATE PACKAGE BODY.

Удаление независимых процедур и пакетов

Независимая процедура, независимая функция, тело пакета, или весь пакет могут быть удалены с помощью команд DROP PROCEDURE, DROP FUNCTION, DROP PACKAGE BODY и DROP PACKAGE, соответственно. Предложение DROP PACKAGE удаляет одновременно как спецификацию, так и тело пакета.

Использование триггеров базы данных

Создание триггеров. Триггеры создаются с помощью команды CREATE TRIGGER. Эту команду можно использовать в любом интерактивном инструменте ; при использовании в таких инструментах, одиночная наклонная черта («/»), вводимая как последняя строка, обозначает конец предложения CREATE TRIGGER. 

Именование триггеров

Имена триггеров должны быть уникальными среди всех триггеров в той же схеме.

Опции BEFORE/AFTER

Либо опция BEFORE, либо опция AFTER должна быть указана в предложении CREATE TRIGGER, чтобы точно специфицировать, когда должно исполняться тело триггера по отношению к исполнению предложения триггера. В предложении CREATE TRIGGER опция BEFORE или AFTER задается непосредственно перед ключевым словом, обозначающим предложение триггера.

Тело триггера

Тело триггера - это блок PL/SQL, который может содержать предложения SQL и PL/SQL. Эти предложения исполняются тогда, когда выдано предложение триггера, и ограничение триггера (если оно есть) вычислено как TRUE. Для триггеров строк тело триггера имеет некоторые специальные конструкты, которые могут быть включены в код этого блока PL/SQL: корреляционные имена, опцию REFERENCING, а также условные предикаты INSERTING, DELETING и UPDATING.


Дата добавления: 2018-02-15; просмотров: 516; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!