Ход работы. 1. Создадим триггер, увеличивающий пользовательскую переменную на одно значение при заключении нового договора.
1. Создадим триггер, увеличивающий пользовательскую переменную на одно значение при заключении нового договора. delimiter // CREATE TRIGGER new_dogovor BEFORE INSERT ON dogovor FOR EACH ROW BEGIN SET @tot1=@tot1+1; END // SELECT @tot1 // SET @tot1=07 // INSERT INTO dogovor VALUES (08,NOW(),1500.00,4)// SELECT @tot1 //
Рисунок 11. Триггер в MySQL
2. Создадим триггер, который при добавлении новых сотрудников сокращает их имена и отчества до первой буквы названия. delimiter // CREATE TRIGGER sotrudnik_inic BEFORE INSERT ON sotrudnik FOR EACH ROW BEGIN SET NEW.s_fam=LEFT(NEW.s_fam,1); SET NEW.s_imya=LEFT(NEW.s_imya,1); END // INSERT INTO sotrudnik VALUES(11,'Valereev','Roman','Victorovich', 'Java','Windows','MySQL,',5) // SELECT s_fam,s_imya from sotrudnik WHERE s_KS=11 //
Рисунок 12. Триггер в MySQL
Лабораторная работа № 8 Транзакции Теоретические сведения Транзакция – последовательность операторов SQL, выполняющихся как единая операция, которая не прерывается другими клиентами. Пока происходит работа с записями таблицы (обновление или удаление), никто другой не может получить доступ к этим записям, т. к. MySQL автоматически блокирует доступ к ним. В настоящий момент их поддержка осуществляется только в таблицах BDB и InnoDB. Транзакции позволяют объединять операторы в группу и гарантировать, что все операторы группы будут выполнены успешно. Если часть транзакции выполняется со сбоем, результаты выполнения всех операторов транзакции до места сбоя отменяются, приводя БД к виду, в котором она была до выполнения транзакции.
|