triggers

21
Trigger Trigger is a statement This is executed automatically by the system as a side effect of a modification to the data base. Example Atm card, on-line reservation.

Upload: work

Post on 24-Jan-2015

2.382 views

Category:

Business


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Triggers

Trigger

Trigger is a statementThis is executed automatically by the

system as a side effect of a modification to the data base.

Example

Atm card, on-line reservation.

Page 2: Triggers

Compopnents Trigger Trigger statement: The DML statement(insert,update,delete) is

called the trigger statement. It fires the trigger body.

Trigger body:The pl/sql block that is executed when a

triggering statement is issued is called the trigger body.

Trigger Restriction:This is on optional part. The restriction is

imposed using when clause and is applicable only for row triggers.

Page 3: Triggers

Types of trigger

BeforeAfterFor each rowFor each statement(default)

Page 4: Triggers

Before/after

The BEFORE (or AFTER) in the trigger definition refers to when you want to run the trigger, either before the actual database modification (update, delete, insert) or after the actual database modification (update, delete, insert).

Page 5: Triggers

Row level trigger

for example, when you’re doing an update, you can have a trigger fire once for each thing being updated (if you update 20 rows, the thing would fire 20 times), or you can have it fire just once per statement (if a single update statement is updating 20 rows, the trigger would fire just once) .This is what that for each row in the trigger definition means.

Page 6: Triggers

Statement level trigger

Statement level triggers are triggered only once.

Page 7: Triggers

Trigger event

Triggers events are events that initiate the trigger action.

InsertUpdatedelete

Page 8: Triggers

Built in trigger

CREATE [OR REPLACE]TRIGGER trigger name{BEFORE/AFTER} {SERVER ERROR/LOGON/LOGOFF/SHUTDOWN/STARTUP} ON DATABASE.

begin

pl/sql statements

end;

Page 9: Triggers

Server error – trigger will be fired when server error message happens.

Log on trigger will be fired after the client application logs on to the database successfully.

Log off trigger will be fired before the client application

Page 10: Triggers

Select * from branch

B_NAME ASSETS B_CITY

north 1200000 chennai

south 500000 bombay

Page 11: Triggers

Creating trigger(before)

set serveroutput on create or replace trigger rowins1 before

insert on branch declare x number; begin select count(*) into x from branch; dbms_output.put_line(' number of

available records before insert :' ||x); end;

Page 12: Triggers

output

insert into branch values('east',1700000,'delhi');

output:number of available records before

insert :2 1 row created.

Page 13: Triggers

select * from branch;

B_NAME ASSETS B_CITY

north 1200000 chennai

south 500000 bombay

east 1700000 delhi

insert into branch values('west',2300000,'banga');number of available records before insert :3 1 row created.

Page 14: Triggers

Creating trigger (after)

set serveroutput on create or replace trigger rowins2 after

insert on branch declare x number; begin select count(*) into x from branch; dbms_output.put_line(' number of

available records after insert :' ||x); end;

Page 15: Triggers

output

insert into branch values('east',120000,'madurai');

number of available records before insert :4 number of available records after insert :5 1 row created.

alter trigger rowins1 disable; Trigger altered.

insert into branch values('east',1450000,'nellai') number of available records after insert :6 1 row created.

Page 16: Triggers

desc dba_triggers;Name Null? Type

OWNER   VARCHAR2(30) TRIGGER_NAME   VARCHAR2(30) TRIGGER_TYPE   VARCHAR2(16)

TRIGGERING_EVENT   VARCHAR2(227) TABLE_OWNER   VARCHAR2(30)

BASE_OBJECT_TYPE   VARCHAR2(16) TABLE_NAME   VARCHAR2(30)

COLUMN_NAME   VARCHAR2(4000) REFERENCING_NAME

S   VARCHAR2(128)

WHEN_CLAUSE   VARCHAR2(4000) STATUS   VARCHAR2(8)

DESCRIPTION   VARCHAR2(4000) ACTION_TYPE   VARCHAR2(11)

TRIGGER_BODY   LONG

Page 17: Triggers

select trigger_name,trigger_body from user_triggers;

TRIGGER_NAME TRIGGER_BODY

ROWINS2 declare x number; begin select count(*) into x from branch; dbms_output.put_line

ROWINS1 declare x number; begin select count(*) into x from branch; dbms_output.put_line

Page 18: Triggers

Parts of trigger

Trigger statement Trigger body Trigger restriction

Page 19: Triggers

Data base trigger

A database trigger is a stored procedure.

It is fired implicitly when an insert,update or delete statements are issued against the table on which the trigger is defined

Page 20: Triggers

Purpose of trigger

To enforce complex integrity constraints.

To enforce complex business rules.

To maintain a replicate table.

To generate data automatically

To avoid invalid transaction

Page 21: Triggers

Department of CE/ITMSPVL Polytechnic College Pavoorchatram