Архив / Хранимые процедуры
.pdfСоздание триггера
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 |
… |