PL/SQL Before Insert Trigger
In PL/SQL the BEFORE INSERT
Trigger will fire before the INSERT operation is executed.
PL/SQL Before Insert Trigger Syntax
Syntax
CREATE [OR REPLACE ] TRIGGER trigger_name
BEFORE INSERT ON table_name
[FOR EACH ROW]
DECLARE
Declaration-statements
BEGIN
Executable-statements
EXCEPTION
Exception-handling-statements
END;
Where:
CREATE TRIGGER trigger_name: To create trigger with sutable name.
REPLACE OR REPLACE TRIGGER trigger_name: To replace trigger with sutable name.
BEFORE: To specifies when you want the trigger to be executed. The INSTEAD OF clause is used for creating trigger on a view.
INSERT: To specifies DML operation.
[ON table_name]: To specifies the name of the table associated with the trigger.
[FOR EACH ROW]: To specifies a row level trigger, Otherwise the trigger will execute just once when the SQL statement is executed.
WHEN (condition): The condition on which the trigger would fire. This is valid for row level triggers.
PL/SQL Before Insert Trigger Example
To show how to create an BEFORE INSERT trigger using the CREATE TRIGGER statement, use the following syntax:
CREATE OR REPLACE TRIGGER user_before_insert
BEFORE INSERT
ON tblCustomerLoan
FOR EACH ROW
DECLARE
t_username varchar2(10);
BEGIN
-- Find loged username performing INSERT into table
SELECT user INTO t_username
FROM dual;
-- Update create_date field to current system date
:new.create_date := sysdate;
-- Update created_by field to the username of the person performing the INSERT
:new.created_by := t_username;
END;