Database Trigger

Database Trigger

DATABASE TRIGGER Chittaranjan Pradhan Database Systems Database Trigger Types of Triggers Laboratory 13 : OLD and : NEW Qualifiers DATABASE TRIGGER INSTEAD OF Trigger Chittaranjan Pradhan School of Computer Engineering, KIIT University 13.1 DATABASE TRIGGER DATABASE TRIGGER Chittaranjan Pradhan Database Trigger Types of Triggers : OLD and : NEW 1 Database Trigger Qualifiers INSTEAD OF Trigger 2 Types of Triggers 3 : OLD and : NEW Qualifiers 4 INSTEAD OF Trigger 13.2 Database Trigger DATABASE TRIGGER Chittaranjan Pradhan Database Trigger Database Trigger Types of Triggers • Trigger is a stored procedure that is fired when a DML : OLD and : NEW (INSERT, DELETE, UPDATE) statement is issued against Qualifiers INSTEAD OF Trigger an associated table • Trigger is mainly used to enforce checks, search and backing up data • A trigger can’t use a TCL statement like COMMIT, ROLLBACK, or SAVEPOINT • A variable in a trigger can’t be declared with LONG or LONG RAW data type • Components of Trigger: • Triggering SQL statement • Trigger action • Trigger restriction 13.3 Types of Triggers DATABASE TRIGGER Chittaranjan Pradhan BEFORE, AFTER & INSTEAD OF Triggers Database Trigger • BEFORE Triggers: These triggers are fired before the Types of Triggers : OLD and : NEW triggering SQL statement is executed Qualifiers • AFTER Triggers: These triggers are fired after the INSTEAD OF Trigger triggering SQL statement is executed • INSTEAD OF Triggers: These triggers are used to make the non-updateable views updateable Statement level & Row level Triggers • Statement level or Table level Triggers: These triggers are fired for each DML operation being performed on a table. This is the default type • Row level Triggers: These triggers are fired for each and every record which is inserted or deleted or updated from a table. This is the common type 13.4 Database Trigger... DATABASE TRIGGER Chittaranjan Pradhan Database Trigger Types of Triggers Database Trigger Syntax : OLD and : NEW Qualifiers INSTEAD OF Trigger CREATE OR REPLACE TRIGGER triggername BEFORE/ AFTER/INSTEAD OF Triggerevent ON tablename/viewname [FOR EACH ROW] [WHEN cond] DECLARE declaration BEGIN executable statements EXCEPTION exception handling statements END; 13.5 : OLD and : NEW Qualifiers DATABASE TRIGGER Chittaranjan Pradhan Database Trigger Types of Triggers : OLD and : NEW Qualifiers : OLD and : NEW Qualifiers INSTEAD OF Trigger : OLD and : NEW qualifiers are related to ROW level triggers Value of a column before the data change is referenced by prefixing OLD Value of a column after the data change is referenced by prefixing NEW 13.6 Database Triggers... DATABASE TRIGGER Chittaranjan Pradhan EMP_TRIG(ename, sal) Database Trigger EMP_BKUP(ename, sal, deletedate) Types of Triggers : OLD and : NEW Qualifiers INSTEAD OF Trigger Create a trigger which checks the value of sal before INSERT or UPDATE statement and ensures that sal below 500 is not inserted CREATE OR REPLACE TRIGGER MIN_SAL_CHK BEFORE INSERT OR UPDATE ON EMP_TRIG FOR EACH ROW WHEN(NEW.sal<500) BEGIN RAISE_APPLICATION_ERROR(-20000,’sal must be above 500’); END; ............ INSERT INTO EMP_TRIG VALUES(’Prasant’,2000); INSERT INTO EMP_TRIG VALUES(’Jack’,300); 13.7 Database Triggers... DATABASE TRIGGER Chittaranjan Pradhan EMP_TRIG(ename, sal) Database Trigger Types of Triggers EMP_BKUP(ename, sal, deletedate) : OLD and : NEW Qualifiers INSTEAD OF Trigger Create a trigger which keeps backup of deleted records of EMP_TRIG table. Deleted records are inserted in EMP_BKUP table CREATE OR REPLACE TRIGGER BKUP_REC AFTER DELETE ON EMP_TRIG FOR EACH ROW BEGIN INSERT INTO EMP_BKUP VALUES(: OLD.ename, : OLD.sal, SYSDATE); END; ............ DELETE FROM EMP_TRIG WHERE ENAME=’Prasant’; 13.8 Database Triggers... DATABASE TRIGGER EMP_TRIG(ename, sal) Chittaranjan Pradhan EMP_BKUP(ename, sal, deletedate) Database Trigger Types of Triggers : OLD and : NEW Qualifiers Create a trigger which checks for any duplicate value and INSTEAD OF Trigger disallow insertion CREATE OR REPLACE TRIGGER UNIQUE_VAL BEFORE INSERT ON EMP_TRIG FOR EACH ROW DECLARE vc NUMBER(2); BEGIN SELECT COUNT(*) INTO vc FROM EMP_TRIG WHERE ename=: NEW.ename; IF vc=1 THEN RAISE_APPLICATION_ERROR(-20024,’You have entered duplicate ename’); END IF; END; 13.9 INSTEAD OF Trigger DATABASE TRIGGER Chittaranjan Pradhan Database Trigger Types of Triggers INSTEAD OF Trigger : OLD and : NEW Qualifiers Normally, we can’t perform any of the DML operations on INSTEAD OF Trigger non-updateable views. But, INSTEAD OF Trigger can be used to make the non-updateable views updateable It is used to modify a table that can’t be modified through a view CREATE OR REPLACE VIEW stud_faculty AS SELECT * FROM student LEFT OUTER JOIN faculty ON faculty.facultyid= student.facultyid; ............. DELETE FROM stud_faculty WHERE facultyid=235; 13.10 INSTEAD OF Trigger... DATABASE TRIGGER Chittaranjan Pradhan Database Trigger Types of Triggers : OLD and : NEW Qualifiers INSTEAD OF Trigger... INSTEAD OF Trigger CREATE OR REPLACE TRIGGER fac_delete INSTEAD OF DELETE ON stud_faculty FOR EACH ROW BEGIN DELETE FROM faculty WHERE facultyid= : OLD.facultyid; END; ............. DELETE FROM stud_faculty WHERE facultyid=235; 13.11.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us