PL/SQL Триггеры (INSERT, UPDATE, DELETE). Определение Три́ггер базы данных (англ. trigger) это хранимая процедура особого типа, которую пользователь не.

Презентация:



Advertisements
Похожие презентации
Triggers для mysql. Что есть триггер? Триггер - это хранимая процедура особого типа, исполнение которой обусловлено наступлением определенного события.
Advertisements

Обеспечение целостности данных Процедурное. Хранимые процедуры Хранимые процедуры пишутся на специальном встроенном языке программирования, они могут.
Последовательности Триггеры Представления. Последовательности Последовательность - это ряд чисел, в котором каждое последующие число больше предыдущего.
PL/SQL Взаимодействие с СУБД. Специальные типы Имя_таблицы.имя_столбца%TYPE Имя_таблицы%ROWTYPE; Имя_курсора%ROWTYPE;
PL/SQL Триггер блок PL/SQL, выполняемый неявно каждый раз, когда происходит конкретное событие.
Триггеры баз данных. Понятие триггера ТРИГГЕР БАЗЫ ДАННЫХ - это хранимая программная единица PL/SQL, ассоциированная с конкретной таблицей базы данных.
Триггеры (в соответствии со стандартом SQL-1999, с особенностями синтаксиса Oracle)
Дискретные и автономные транзакции (начиная с версии Oracle8i)
PL/SQL Курсоры. Курсор – специальный элемент, связанный с SQL-оператором SELECT. Объявление курсора происходит в секции объявления базового блока. Работа.
«ИЗМЕНЕНИЕ ДАННЫХ В БД» Выполнил: студент 722 группы Специальности Информационные системы (по отрослям) Токарев Виктор.
Защита информации в базах данных. Два подхода Два подхода к вопросу обеспечения безопасности данных: избирательный подход обязательный подход. В обоих.
Процедуры Базы данных: учебный курс Некоторые операции, рассматриваемые как неделимые, трудно выразить с помощью одного запроса к БД. Примеры: занести.
МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ. Программная единица PL/SQL Именованные блоки Три основных категории Процедура Функция Пакет Хранятся в базе данных или обрабатываются.
Лекция 3 Домены Ограничения на значения столбцов Создание, изменение и удаление таблиц Ключи и ссылочная целостность Защита таблиц.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
Введение в SQL (НЕ select) Затрагиваемые темы Роль языка SQL. Части SQL Роль языка SQL. Части SQL Администрирование БД: привилегии (DCL) Администрирование.
База данных База данных – это конкретная предметная область, описанная с помощью таблиц.
Обработка исключений Гудов А.М., Завозкин С.Ю
ОРГАНИЗАЦИЯ БАЗ ДАННЫХ И ЗНАНИЙ ТЕМА 5 СТРУКТУРИРОВАННЫЙ ЯЗЫК ЗАПРОСОВ SQL.
Обработка ошибок. Общие сведения Что такое исключение? –Переменная в PL/SQL, возбуждаемая во время выполнения Как возникает исключение? –Возбуждается.
Транксрипт:

PL/SQL Триггеры (INSERT, UPDATE, DELETE)

Определение Три́ггер базы данных (англ. trigger) это хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено наступлением определенного события (действием) по сути добавлением INSERT или удалением DELETE строки в заданной таблице, или модификации UPDATE данных в определенном столбце заданной таблицы реляционной базы данныхангл. хранимая процедура реляционной базы данных

Синтаксис CREATE [OR REPLACE] TRIGGER ON [FOR EACH ROW] [WHEN триггерное_ограничение] [DECLARE …] BEGIN … [EXCEPTION …] END [имя_триггера];

Синтаксис Момент срабатывания BEFORE (до проверок на строки, затрагиваемые триггерным событием) AFTER (после того, как запускающий оператор завершит работу) Триггерное событие INSERT UPDATE DELETE * Можно комбинировать: «DELETE OR INSERT», …

Синтаксис Триггерное ограничение: дополнительные условия срабатывания триггера [FOR EACH ROW] указывает на необходимость обработки каждой строки указанной таблицы / представления

Синтаксис Триггерное ограничение: дополнительный условия срабатывания триггера. Обращение к строкам через old. и new.

Обращение к строкам из триггера В исполняемом блоке триггера к обрабатываемым строкам можно обращаться посредством :old.имя_столбца :new.имя_столбца

Примеры: CREATE OR REPLACE TRIGGER persons_insert_trigger AFTER INSERT ON persons FOR EACH ROW BEGIN INSERT INTO persons_inserts VALUES(sysdate, :new.id); END

Примеры: CREATE OR REPLACE TRIGGER persons_id_insert_trigger BEFORE INSERT ON persons FOR EACH ROW BEGIN SELECT persons_seq.NEXTVAL INTO :NEW.id FROM DUAL; END

Примеры: CREATE OR REPLACE TRIGGER persons_insert_trigger BEFORE DELETE ON persons FOR EACH ROW BEGIN insert into persons_deletes values(sysdate, :old.id); END