русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Создание и модификация триггеров


Дата добавления: 2015-07-09; просмотров: 574; Нарушение авторских прав


Поддержка триггеров включена, начиная с MySQL 5.0.2. Триггер представляет собой именованный объект базы данных, который связан с таблицей, и будет активизирован, когда произойдет определенное событие для таблицы.

Синтаксис команды создания триггера следующий:

CREATE

[DEFINER = {<пользователь> | CURRENT_USER}]

TRIGGER <имя триггера> <время> <событие>

ON <имя таблицы> FOR EACH ROW <тело триггера>

Триггер становится связанным с <имя таблицы>.

Предложение DEFINER определяет имя пользователя MySQL, которое будет использовать при проверке привилегий доступа в вызове триггера. Значение по умолчанию: пользователь, который выполняет инструкцию CREATE TRIGGER, что равнозначно DEFINER = CURRENT_USER. <пользователь> указывается в формате 'user_name'@'host_name' (как в команде GRANT).

<время> задает время действия. Это может быть BEFORE или AFTER, чтобы указать, что триггер активизируется до или после модификации каждой строки. <событие> указывает вид инструкции, которая активизирует триггер. <событие> может быть одним из следующего:

INSERT: триггер активизируется, когда новая строка вставляется в таблицу. Например, через команды INSERT, LOAD DATA или REPLACE.

UPDATE: триггер активизируется, когда строка изменяется. Например, через инструкцию UPDATE.

DELETE: триггер активизируется, когда строка удаляется из таблицы. Например, через инструкции DELETE и REPLACE. Однако, инструкции DROP TABLE и TRUNCATE относительно таблицы НЕ активизируют триггер, потому что не используют DELETE.

Не может быть двух триггеров для данной таблицы, которые имеют те же самые время действия и событие. Например, не может быть двух триггеров BEFORE UPDATE для таблицы. Но может быть BEFORE UPDATE и BEFORE INSERT или BEFORE UPDATE и AFTER UPDATE.



<тело триггера> задает инструкцию, которая будет выполнена, когда триггер активизируется. Если необходимо выполнить много инструкций, используется операторная конструкция BEGIN ... END.

Обращаться к столбцам в подчиненной таблице можно используя псевдонимы OLD и NEW. OLD.<имя столбца> обращается к столбцу существующей строки прежде, чем она модифицируется или удалится. NEW.<имя столбца> обращается к столбцу новой строки, которая будет вставлена, или же к существующей строке после того, как она модифицируется.

Пример создания триггера:

CREATE TABLE test1(a1 INT);

CREATE TABLE test2(a2 INT);

CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);

CREATE TABLE test4(a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

b4 INT DEFAULT 0);

DELIMITER |

CREATE TRIGGER testref BEFORE INSERT ON test1

FOR EACH ROW BEGIN

INSERT INTO test2 SET a2 = NEW.a1;

DELETE FROM test3 WHERE a3 = NEW.a1;

UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;

END;

|

DELIMITER ;

 

Синтаксис удаления триггера:

DROP TRIGGER [<база данных>.]<имя триггера>

Имя базы данных необязательно. Если оно не задано, триггер удаляется из заданной по умолчанию базы данных. Использование этой инструкции требует привилегии SUPER.

Замечание: в настоящее время триггеры не активизируются каскадными действиями внешнего ключа.

 



<== предыдущая лекция | следующая лекция ==>
Представления (обзоры) | Создание и модификация хранимых процедур и функций


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.737 сек.