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

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

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

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

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