PL/SQL Triggers
PL/SQL Triggers
A trigger is a PL/SQL block which will run automatically whenever an event occurs. PL/SQL block may be associated with a table, a view or to a database.
A trigger is a procedure that is triggered automatically when on the table that is created is executed a command like insert, update, or delete.
Triggers can contain PL/SQL code and SQL code that are executed as a block.
The trigger can be invoked either before or after the execution of the order insert, update, or delete.
Triggers can be:
– Trigger for the application: this type of trigger is run when an event occurs in an application.
-Trigger for database (DML): this type of trigger is run whenever an event occurs in a database.
CREATE OR REPLACE TRIGGER trigger_name
{BEFORE | AFTER | INSTEAD OF}
{INSERT | UPDATE | DELETE}
[OF column_name]
ON table_name
[REFERENCING OLD AS old NEW AS new]
[FOR EACH ROW]
WHEN (condition)
BEGIN
--- pl/sql statements
END;
Triggers at the database level may be of two kinds:
– at the level of instruction (statement level trigger)
– line level (row level trigger)
-- before statement trigger
CREATE OR REPLACE TRIGGER before_ trigger
BEFORE INSERT ON frame
BEGIN
DBMS_OUTPUT.PUT_LINE('Before Insert Statement Level');
END;
-- before row trigger
CREATE OR REPLACE TRIGGER before_row_trigger
BEFORE INSERT ON frame
FOR EACH ROW
BEGIN
DBMS_OUTPUT.PUT_LINE('Before Insert Row Level');
END;