Create Before Update Trigger in SQL is used in SQL, if a trigger monitoring for changes to a column of the table.
Understand with Example
The Tutorial illustrate an example from 'Create Before Update Trigger in SQL' . To understand this example we create a table 'Stu_Table' with field name and data type respectively.
Create Table Stu_Table
Create Table Stu_Table (Stu_Id int,Stu_Name Varchar(15),Sub1 int,Sub2 int,Sub3 int, Sub4 int,Sub5 int,total int,per float,status varchar(15)); |
Create Trigger Stu_Insert
The Before Trigger fires on a table 'stu_table' before you add a records or rows into the table 'stu_table'.
delimiter $$ CREATE TRIGGER stu_insert Before Insert ON stu_table FOR EACH ROW BEGIN set new.total = new.sub1 + new.sub2 +new.sub3 + new.sub4 +new.sub5; set new.per = new.total/5; if new.per<33 then set new.status="fail"; elseif new.per>=33 and new.per<45 then set new.status="3rd Div"; elseif new.per>=45 and new.per<60 then set new.status="2nd Div"; else set new.status="1st Div"; end if; END$$ delimiter ; |
Create Trigger Stu_Update
The Create Before Update Trigger in SQL monitor for changes to a column in the table 'stu_table' where stu_id is '1'.
delimiter $$ CREATE TRIGGER stu_update Before update ON stu_table FOR EACH ROW BEGIN set new.total = new.sub1 + new.sub2 +new.sub3 + new.sub4 +new.sub5; set new.per = new.total/5; if new.per<33 then set new.status="fail"; elseif new.per>=33 and new.per<45 then set new.status="3rd Div"; elseif new.per>=45 and new.per<60 then set new.status="2nd Div"; else set new.status="1st Div"; end if; END$$ delimiter ; |
Insert Data Into Stu_Table
insert into stu_table( Stu_Id, Stu_Name, sub1, sub2, sub3, sub4, sub5) values (1, 'AAA', 6, 6, 6, 6, 6); insert into stu_table( Stu_Id, Stu_Name, sub1, sub2, sub3, sub4, sub5) values (2, 'BBB', 33, 33, 33, 33, 40); insert into stu_table( Stu_Id, Stu_Name, sub1, sub2, sub3, sub4, sub5) values (2, 'CCC', 45, 45, 45, 45, 50); insert into stu_table( Stu_Id, Stu_Name, sub1, sub2, sub3, sub4, sub5) values (2, 'DDD', 67, 67, 67, 67, 67); |
Stu_Table
+------+--------+----+----+----+----+----+-----+------+----------+ |Stu_Id|Stu_Name|Sub1|Sub2|Sub3|Sub4|Sub5|total| per | status | +------+--------+----+----+----+----+----+-----+------+----------+ | 1 | AAA | 6 | 6 | 6 | 6 | 6 | 30 | 6 | fail | | 2 | BBB | 33 | 33 | 33 | 33 | 40 | 172 | 34.4 | 3rd Div | | 2 | CCC | 45 | 45 | 45 | 45 | 50 | 230 | 46 | 2nd Div | | 2 | DDD | 67 | 67 | 67 | 67 | 67 | 335 | 67 | 1st Div | +------+--------+----+----+----+----+----+-----+------+----------+ |
Update Data From Stu_Table;
update stu_table set sub1=33,set sub2=33,set sub3=33,set sub4=33,set sub5=33 where stu_id = 1; |
Stu_Table
+-------+---------+----+----+----+----+----+-----+------+----------+ |Stu_Id |Stu_Name |Sub1|Sub2|Sub3|Sub4|Sub5|total| per | status | +------ +---------+----+----+----+----+----+-----+------+----------+ | 1 | AAA | 50 | 50 | 33 | 6 | 6 | 145 | 29 | fail | | 2 | BBB | 33 | 33 | 33 | 33 | 40 | 172 | 34.4 | 3rd Div | | 2 | CCC | 45 | 45 | 45 | 45 | 50 | 230 | 46 | 2nd Div | | 2 | DDD | 67 | 67 | 67 | 67 | 67 | 335 | 67 | 1st Div | +-------+---------+----+----+----+----+----+-----+------+----------+ |
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.
Ask Questions? Discuss: Create Before Update Trigger in SQL View All Comments
Post your Comment