MySql Assignment 5
MySql Assignment 5
ASSIGNMENT 5
AIM: -
Database Trigger (Row level and Statement level triggers, Before and After
Triggers): Write a database trigger on Employee table. The System should keep
track of the records that are being updated or deleted. The old value of updated or
deleted records should be added in to a new table when the Employee table is
updated. Employee (employee no, employee name, join_date, designation, salary).
OBJECTIVE: -
To implement row and statement level trigger.
THEORY: -
In programs sometimes it is required to execute certain code followed by certain
events and this requirement can be achieved in PL/SQL through triggers.
Triggers are stored programs that are fired automatically when some event occurs. The
code to be fired can be defined as per the requirement.
Oracle has also provided the facility to mention the event upon which the trigger needs
to be fire and the timing of the execution.
Triggers are stored programs, which are automatically executed or fired when some
events occur.
Triggers are, in fact, written to be executed in response to any of the following events −
1.A database manipulation (DML) statement (DELETE, INSERT, or UPDATE)
2.A database definition (DDL) statement (CREATE, ALTER, or DROP).
3.A database operation (SERVERERROR, LOGON, LOGOFF, STARTUP, or SHUTDOWN).
Triggers can be defined on the table, view, schema, or database with which the
event is associated.
BENEFITS: -
1. Triggers can be written for the following purposes
2. Generating some derived column values automatically
3. Enforcing referential integrity
4.Event logging and storing information on table access
5. Auditing
6. Synchronous replication of tables
7. Imposing security authorizations 8.
Preventing invalid transactions
INPUT: -
TABLE EMPLOYEE_
Select * from employee_; TABLE
EMPLOYEE_TABLE
Create Table employee_table(employee_no int(5),employee_name
varchar(20),join_date varchar(20),designation varchar(20),salary int(10));
Select * from employee_table;
After INSERT
delimiter /
create trigger emp
AFTER INSERT on employee_ for each
row
begin
insert into employee_table
values(NEW.employee_no,NEW.employee_name,NEW.join_date,NE
W.designation,NEW.salary);
end;
/
AFTER DELETE
delimiter /
create trigger emp6
AFTER DELETE on employee_ for
each row
begin
DELETE FROM EMPLOYEE_TABLE where
OLD.employee_no=employee_table.employee_no; end;
/
BEFORE UPDATE
Delimiter /
Create trigger emp2
BEFORE UPDATE on employee_ for each
row
Begin
UPDATE EMPLOYEE_TABLE SET
employee_name=old.employee_name,join_date=old.join_date,desi
gnation=old.designation,salary=old.salary,employee_no=old.emplo yee_no where
employee_no=old.employee_no;
End;
/
AFTER UPDATE
delimiter /
create trigger emp11
AFTER UPDATE on employee_ for each
row
begin
UPDATE EMPLOYEE_TABLE SET
employee_name=NEW.employee_name,join_date=NEW.join_date,d
esignation=NEW.designation,salary=NEW.salary,employee_no=NE W.employee_no
where employee_no=old.employee_no;
COLLEGE: VIIT, Pune.
end;
/
OUTPUT: -
● Query (2):
○ CREATE TABLE Employee (
○ -> employee_no VARCHAR(255),
○ -> employee_name VARCHAR(255),
○ -> Join_date DATE,
○ -> designation VARCHAR(255),
○ -> salary INT
○ -> );
Output:
Output:
Output:
Output:
Output: