Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архив / Хранимые процедуры

.pdf
Скачиваний:
50
Добавлен:
14.05.2015
Размер:
962 Кб
Скачать
☆

Создание триггера

CREATE TRIGGER <имя>

{Before | After}

{Insert | Update | Delete}

ON <имя таблицы> FOR EACH ROW

Begin

<тело>

End;

если зарплата оказалась увеличенной более чем на 5%, то это исправляется, и зарплата увеличивается ровно на 5% от предыдущей зарплаты

use test; delimiter //

CREATE TRIGGER emp_update BEFORE UPDATE ON tblemployee FOR EACH ROW

BEGIN

IF (new.fltSalary-old.fltSalary) > (0.05 * old.fltSalary) then set new.fltSalary = 1.05 * old.fltSalary;

END IF;

END//

tblEmployee

intEmpId

txtEmpName

fltSalary

…

 

 

 

 

1023

Бобров А.А.

10000

…

 

 

 

 

1025

Мухина В.Н.

12000

…

 

 

 

 

1026

Лобов А.Г.

14000

…

 

 

 

 

Update tblEmployee Set fltSalary=12000 Where intEmpId=1023

tblEmployee

intEmpId

txtEmpName

fltSalary

…

 

 

 

 

1023

Бобров А.А.

10000

…

 

 

 

 

1025

Мухина В.Н.

12000

…

 

 

 

 

1026

Лобов А.Г.

14000

…

 

 

 

 

Update tblEmployee Set fltSalary=12000 Where intEmpId=1023

Emp_Update

old

intEmpId

txtEmpName

fltSalary

…

 

 

 

 

 

 

 

 

 

 

new

intEmpId

txtEmpName

fltSalary

…

tblEmployee

intEmpId

txtEmpName

fltSalary

…

 

 

 

 

1023

Бобров А.А.

10000

…

 

 

 

 

1025

Мухина В.Н.

12000

…

 

 

 

 

1026

Лобов А.Г.

14000

…

 

 

 

 

Update tblEmployee Set fltSalary=12000 Where intEmpId=1023

Emp_Update

old

1023

Бобров А.А.

10000

…

 

 

 

 

 

 

 

 

 

 

new

1023

Бобров А.А.

12000

…

tblEmployee

intEmpId

txtEmpName

fltSalary

…

 

 

 

 

1023

Бобров А.А.

10000

…

 

 

 

 

1025

Мухина В.Н.

12000

…

 

 

 

 

1026

Лобов А.Г.

14000

…

 

 

 

 

Update tblEmployee Set fltSalary=12000 Where intEmpId=1023

Emp_Update

old

1023

Бобров А.А.

10000

…

 

 

 

 

 

 

 

 

 

 

new

1023

Бобров А.А.

10500

…

tblEmployee

intEmpId

txtEmpName

fltSalary

…

 

 

 

 

1023

Бобров А.А.

10500

…

 

 

 

 

1025

Мухина В.Н.

12000

…

 

 

 

 

1026

Лобов А.Г.

14000

…

 

 

 

 

Update tblEmployee Set fltSalary=12000 Where intEmpId=1023

Emp_Update

old

1023

Бобров А.А.

10000

…

 

 

 

 

 

 

 

 

 

 

new

1023

Бобров А.А.

10500

…

tblEmployee

intEmpId

txtEmpName

fltSalary

…

 

 

 

 

1023

Бобров А.А.

10000

…

 

 

 

 

1025

Мухина В.Н.

12000

…

 

 

 

 

1026

Лобов А.Г.

14000

…

 

 

 

 

Update tblEmployee Set fltSalary=12500

tblEmployee

intEmpId

txtEmpName

fltSalary

…

 

 

 

 

1023

Бобров А.А.

10000

…

 

 

 

 

1025

Мухина В.Н.

12000

…

 

 

 

 

1026

Лобов А.Г.

14000

…

 

 

 

 

Update tblEmployee Set fltSalary=12500

Emp_Update

old

1023

Бобров А.А.

10000

…

 

 

 

 

 

 

 

 

 

 

new

1023

Бобров А.А.

12500

…

tblEmployee

intEmpId

txtEmpName

fltSalary

…

 

 

 

 

1023

Бобров А.А.

10500

…

 

 

 

 

1025

Мухина В.Н.

12000

…

 

 

 

 

1026

Лобов А.Г.

14000

…

 

 

 

 

Update tblEmployee Set fltSalary=12500

Emp_Update

old

1023

Бобров А.А.

10000

…

 

 

 

 

 

 

 

 

 

 

new

1023

Бобров А.А.

10500

…