Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Разработка механизмов управления данными в базе при помощи триггеров

РефератПомощь в написанииУзнать стоимостьмоей работы

Триггеры позволяют автоматически выполнять указанные действия, касающиеся какой-то определенной таблицы. Ниже будет создан триггер, который будет добавлять удаленные данные в резервную копию таблицы. При помощи инструкции DECLARE CURSOR связывается имя курсора с выполняемым запросом; INSERT INTO tovari_info VALUES (id_tov = tovari.`id_tovara`, naz_tovara = tovari.`naz_tovara`, 'otsutstvuet… Читать ещё >

Разработка механизмов управления данными в базе при помощи триггеров (реферат, курсовая, диплом, контрольная)

При модификации, удалении или добавлении данных рабочей единицей является ряд (row, строка, запись). Курсор — это указатель на ряд. Курсор в SQL — это область в памяти БД, которая предназначена для хранения последовательности оператора SQL.

Работа с курсорами происходит по следующему алгоритму:

  • · при помощи инструкции DECLARE CURSOR связывается имя курсора с выполняемым запросом;
  • · оператор OPEN выполняет запрос, связанный с курсором, и устанавливает курсор перед первой записью результирующей таблицы;
  • · оператор FETCH помещает курсор на первую запись результирующей таблицы и извлекает данные из записи в локальные переменные хранимой процедуры. Повторный вызов оператора FETCH приводит к помещению курсора к следующей записи и так до тех пор, пока записи в результирующей таблице не будут исчерпаны;
  • · оператор CLOSE прекращает доступ к результирующей таблице и ликвидирует связь между курсором и результирующей таблицей.

А теперь попробуем создать триггеры.

Листинг 3.7. Триггер на обновление данных.

DELIMITER $$.

USE `kans_tovari`$$.

DROP TRIGGER IF EXISTS `trig_dost`$$.

CREATE.

DEFINER = 'root'@'localhost'.

TRIGGER `trig_dost` BEFORE UPDATE ON `dostavka`.

FOR EACH ROW BEGIN.

IF dostavka. status='nD' THEN UPDATE dostavka SET dostavka. status='nedostavleno';

ELSE UPDATE dostavka SET dostavka. status='Dostavleno';

END IF;

END$$.

DELIMITER;

Это триггер с использованием условия результатом которая является при обновления таблица доставка если статус доставка равно «nD» то будет не доставлено в обратном случае будет доставлено.

Ниже будет создан триггер, который будет добавлять удаленные данные в резервную копию таблицы.

Листинг 3.8. Триггер для хранения удаленных данных.

DELIMITER $$.

USE `kans_tovari`$$.

DROP TRIGGER IF EXISTS `tr2`$$.

CREATE.

DEFINER = 'root'@'localhost'.

TRIGGER `tr2` AFTER UPDATE ON `tovari`.

FOR EACH ROW BEGIN.

INSERT INTO tovari_info VALUES (id_tov = tovari.`id_tovara`, naz_tovara = tovari.`naz_tovara`, 'otsutstvuet');

END$$.

DELIMITER;

Триггеры позволяют автоматически выполнять указанные действия, касающиеся какой-то определенной таблицы.

Показать весь текст
Заполнить форму текущей работой