Вы находитесь на странице: 1из 2

A TRIGGER IS A PL/SQL BLOCK THAT IS EXECUTED IMPLICITLY BY ORACLE ITSELF WHEN THE

TRIGGERING EVENT OCCURS.

WHEN A TRIGGER IS EXECUTED THEN IT IS KNOWN AS FIRING OF THE TRIGGER.

A TRIGGER WILL FIRE BASED ON AN EVENT. FOR DML TRIGGERS THE TRIGGER WILL FIRE BASED
ON DML EVENTS.

WE USE TRIGGERS FOR THE FOLLOWING REASONS

1. TO AUDIT TRANSACTIONS ON DB TABLES.


2. TO CHECK COMPLEX BUSINESS LOGIC/RULES THAT CANNOT BE CHECKED USING CONSTRAINTS
3. TO AUTOMAICALLY SIGNAL PL/SQL PROCEDURES AND FUNCTIONS TO EXECUTE WHEN A
TRIGGERING EVENT OCCURS.

SYNTAX FOR TRIGGER:-

CREATE [OR REPLACE] TRIGGER <TRIGGER NAME>


<TRIGGER TIMING> <TRIGGER EVENT> ON <TABLE NAME>
[FOR EACH ROW]
DECLARE
<DECLARE SECTION>
BEGIN
<EXECUTABLE SECTION>
EXCEPTION
<EXCEPTION SECTION>;
END <TRIGGER NAME>;

TRIGGER NAME :- IS THE NAME OF THE TRIGGER. THE TRIGGER NAME CAN BE THE SAME AS
ANOTHER OBJECTS NAME, SINCE TRIGGER NAMES ARE STORED BY ORACLE IN A SEPARATE NAME
SPACE.

TRIGGER TIMING:- SPECIFIES WHEN THE TRIGGER SHOULD BE FIRED. THE TRIGGER TIMING CAN
BE BEFORE OR AFTER.IF THE TRIGGER TIMING IS BEFORE THEN THE TRIGGER WILL FIRE
BEFORE THE TRIGGERING EVENT. IF THE TRIGGER TIMING IS AFTER THEN THE TRIGGER WILL
FIRE AFTER THE TRIGGERING EVENT.

TRIGGERING EVENT:- THE TRIGGERING EVENT CAN BE

INSERT
UPDATE
DELETE

OR ALL 3 OF THEM.

TABLE NAME:- SPECIFIES THE NAME OF THE TABLE ON WHICH WE ARE WRITING THE TRIGGER.

TRIGGERS ARE OF TWO TYPES


STATEMENT LEVEL TRIGGERS
ROW LEVEL TRIGGERS

IF THE TRIGGER IS A STATEMENT LEVEL TRIGGER THEN IT WILL FIRE ONCE REGARDLESS OF
THE NUMBER ROWS
AFFECTED BY THE TRIGGERING STATEMENT.

IF THE TRIGGER IS A ROW LEVEL TRIGGER THEN IT WILL FIRE THOSE MANY TIMES AS THE
NUMBER ROWS
AFFECTED BY THE TRIGGERING STATEMENT.

Вам также может понравиться