日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle中的觸發(fā)器trigger

瀏覽:207日期:2023-03-12 15:25:09

觸發(fā)器是指被隱含執(zhí)行的存儲過程

一、創(chuàng)建DML觸發(fā)器(before/after)

1、行觸發(fā)器:

當(dāng)一個DML操作影響DB中的多行時,對于其中復(fù)合觸發(fā)條件的每行均觸發(fā)一次(for each row)

例1: 建立一個觸發(fā)器, 當(dāng)職工表 emp 表被刪除一條記錄時,把被刪除記錄寫到職工表刪除日志表中去。

CREATE OR REPLACE TRIGGER tr_del_emp   BEFORE DELETE --指定觸發(fā)時機(jī)為刪除操作前觸發(fā)   ON scott.emp   FOR EACH ROW   --說明創(chuàng)建的是行級觸發(fā)器BEGIN   --將修改前數(shù)據(jù)插入到日志記錄表 del_emp ,以供監(jiān)督使用。   INSERT INTO emp_his(deptno , empno, ename , job ,mgr , sal , comm , hiredate )       VALUES( :old.deptno, :old.empno, :old.ename , :old.job,:old.mgr, :old.sal, :old.comm, :old.hiredate );END;

例2:級聯(lián)更新:利用行觸發(fā)器實(shí)現(xiàn)級聯(lián)更新。在修改了主表regions中的region_id之后(AFTER),級聯(lián)的、自動的更新子表countries表中原來在該地區(qū)的國家的region_id

CREATE OR REPLACE TRIGGER tr_reg_couAFTER update OF region_idON regionsFOR EACH ROWBEGIN DBMS_OUTPUT.PUT_LINE("舊的region_id值是"||:old.region_id  ||"、新的region_id值是"||:new.region_id); UPDATE countries SET region_id = :new.region_id WHERE region_id = :old.region_id;END;

例3:限定只對部門號為80的記錄進(jìn)行行觸發(fā)器操作。

CREATE OR REPLACE TRIGGER tr_emp_sal_commBEFORE UPDATE OF salary, commission_pct       OR DELETEON HR.employeesFOR EACH ROWWHEN (old.department_id = 80)BEGIN CASE     WHEN UPDATING ("salary") THENIF :NEW.salary < :old.salary THEN     RAISE_APPLICATION_ERROR(-20001, "部門80的人員的工資不能降");END IF;     WHEN UPDATING ("commission_pct") THEN  IF :NEW.commission_pct < :old.commission_pct THEN   RAISE_APPLICATION_ERROR(-20002, "部門80的人員的獎金不能降");END IF;     WHEN DELETING THEN  RAISE_APPLICATION_ERROR(-20003, "不能刪除部門80的人員記錄");     END CASE;END;  /*實(shí)例:UPDATE employees SET salary = 8000 WHERE employee_id = 177;DELETE FROM employees WHERE employee_id in (177,170);*/

2、語句觸發(fā)器:

將整個DML語句作為觸發(fā)條件,當(dāng)它符合約束條件時,激活一次觸發(fā)器。

限制對Departments表修改(包括INSERT,DELETE,UPDATE)的時間范圍,即不允許在非工作時間修改departments表。

CREATE OR REPLACE TRIGGER tr_dept_timeBEFORE INSERT OR DELETE OR UPDATEON departmentsBEGIN IF (TO_CHAR(sysdate,"DAY") IN ("星期六", "星期日")) OR (TO_CHAR(sysdate, "HH24:MI") NOT BETWEEN "08:30" AND "18:00") THEN     RAISE_APPLICATION_ERROR(-20001, "不是上班時間,不能修改departments表"); END IF;END;

二、創(chuàng)建替代(instead of )觸發(fā)器

用于對視圖(沒有指定WITH CHECK OPTION選項)的DML觸發(fā)。

  • 只能被創(chuàng)建在視圖上。
  • 不能指定BEFORE 或 AFTER選項。
  • FOR EACH ROW子可是可選的,即INSTEAD OF觸發(fā)器只能在行級上觸發(fā)、或只能是行級觸發(fā)器,沒有必要指定。

創(chuàng)建INSTEAD_OF觸發(fā)器來為 DELETE 操作執(zhí)行所需的處理,即刪除EMP表中所有基準(zhǔn)行:

CREATE OR REPLACE TRIGGER emp_view_delete   INSTEAD OF DELETE ON emp_view FOR EACH ROWBEGIN   DELETE FROM emp WHERE deptno= :old.deptno;END emp_view_delete;

三、創(chuàng)建系統(tǒng)事件觸發(fā)器(on schema/on database)

1、當(dāng)建立在模式(SCHEMA)之上時,只有模式所指定用戶的DDL操作和它們所導(dǎo)致的錯誤才激活觸發(fā)器, 默認(rèn)時為當(dāng)前用戶模式。

例1:創(chuàng)建觸發(fā)器,存放有關(guān)事件信息。

--創(chuàng)建觸犯發(fā)器CREATE OR REPLACE TRIGGER tr_ddlAFTER DDL ON SCHEMABEGIN   INSERT INTO ddl_event VALUES   (systimestamp,ora_sysevent, ora_login_user,    ora_dict_obj_type, ora_dict_obj_name);END tr_ddl;

2、當(dāng)建立在數(shù)據(jù)庫(DATABASE)之上時,該數(shù)據(jù)庫所有用戶的DDL操作和他們所導(dǎo)致的錯誤,以及數(shù)據(jù)庫的啟動和關(guān)閉均可激活觸發(fā)器。

要在數(shù)據(jù)庫之上建立觸發(fā)器時,要求用戶具有ADMINISTER DATABASE TRIGGER權(quán)限。

例1:創(chuàng)建登錄觸發(fā)器。

CREATE OR REPLACE TRIGGER tr_logonAFTER LOGON ON DATABASEBEGIN   INSERT INTO log_event (user_name, address, logon_date)   VALUES (ora_login_user, ora_client_ip_address, systimestamp);END tr_logon;

四、重新編譯觸發(fā)器

ALTER TRIGGER  trigger  COMPILE

刪除觸發(fā)器:當(dāng)刪除表或視圖時,建立在這些對象上的觸發(fā)器也隨之刪除。

DROP TRIGGER trigger_name;

禁用或啟用觸發(fā)器

ALTER TRIGGER emp_view_delete DISABLE| ENABLE;--使表EMP 上的所有TRIGGER 失效:ALTER TABLE emp DISABLE ALL TRIGGERS;

觸發(fā)器和數(shù)據(jù)字典

相關(guān)數(shù)據(jù)字典:USER_TRIGGERS、ALL_TRIGGERS、DBA_TRIGGERS

Oracle 字符集

到此這篇關(guān)于Oracle觸發(fā)器trigger的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持。

標(biāo)簽: Oracle
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人在线网站| 国产成人精品一区二区三区视频| 视频二区不卡| 中文字幕在线看片| 国产欧洲在线| 国产精品成人a在线观看| 精品视频国内| 日韩电影免费网站| 四虎884aa成人精品最新| 日韩精品首页| 精品一区二区三区视频在线播放| 卡一卡二国产精品| 福利一区和二区| 成人免费网站www网站高清| 日韩欧美一区二区三区免费观看| 久久久久国产精品一区三寸| 午夜欧美精品| 免费看欧美美女黄的网站| 亚洲一区欧美| 国产调教精品| 天堂а√在线最新版中文在线| 欧美精选视频一区二区| 欧美.日韩.国产.一区.二区| 亚洲作爱视频| 日韩欧美高清一区二区三区| 日韩激情一区二区| 久久久久观看| 日韩在线观看不卡| 免费日韩av片| 综合色一区二区| 日本精品久久| 国产不卡精品| 国模 一区 二区 三区| 欧美在线综合| 国产精品毛片久久久| 国产一区二区精品福利地址| 日韩在线观看| 蜜桃久久久久久久| 欧美激情麻豆| 欧美日韩少妇| 青青草伊人久久| 国产一区二区三区亚洲综合| 婷婷六月综合| 奇米亚洲欧美| 欧洲av不卡| 免费人成在线不卡| 久久中文欧美| 亚洲少妇一区| 久久精品国产久精国产| 亚洲精品成人| 国产精品伊人| 欧美特黄一级大片| 婷婷精品在线| 国产中文在线播放| 亚洲永久精品唐人导航网址| 国产精品久久亚洲不卡| 日韩一区自拍| 日韩av成人高清| 蜜桃精品在线| 国产日韩一区| 在线视频观看日韩| 久久精品 人人爱| 国产一区日韩欧美| 国产高清精品二区| 欧美女激情福利| 国产精品v日韩精品v欧美精品网站 | 精品久久国产一区| 免费久久久久久久久| 国产伦理久久久久久妇女| 久久婷婷av| 国产欧美午夜| 久久国产精品99国产| 国产精品不卡| 日韩一区二区三免费高清在线观看 | 日韩国产一二三区| 国产一区亚洲| 久久精品五月| 日韩 欧美一区二区三区| 日韩国产欧美一区二区| 日韩不卡手机在线v区| 91国语精品自产拍| 国产精品毛片久久久| 美女被久久久| 91精品国产成人观看| 久久女人天堂| 日韩av网站免费在线| 日韩一级网站| а√天堂8资源在线| 国产毛片久久久| 亚洲资源在线| 亚洲国产成人精品女人| 久久久久久夜| 欧美黑人做爰爽爽爽| 亚洲精品一二三**| 不卡中文字幕| 欧美精品日日操| 欧美在线不卡| 麻豆精品91| 成人av二区| 日韩网站中文字幕| 国产成年精品| 麻豆精品视频在线| 久久国产欧美日韩精品| 日韩中出av| 亚洲色图综合| 免费日韩精品中文字幕视频在线| 伊人久久大香线蕉av不卡| 久久免费视频66| 欧美激情视频一区二区三区免费 | 国产欧美一级| 日韩精品免费视频人成| 中文字幕av一区二区三区四区| 日韩视频一区| 亚洲福利久久| 91精品国产乱码久久久久久久| 日本欧美不卡| 婷婷综合六月| 国产美女高潮在线观看| 91偷拍一区二区三区精品| 欧美1区2区3| 麻豆精品视频在线| 精品精品99| 最新国产拍偷乱拍精品| 9国产精品视频| 国产精品美女| 伊人久久大香伊蕉在人线观看热v| 男女性色大片免费观看一区二区| 美女国产一区| 天堂俺去俺来也www久久婷婷| 日韩精品午夜视频| 日韩成人一级| 国产精品主播| 久久尤物视频| 国产精品国产三级国产在线观看| 美女视频黄 久久| 精品国产亚洲一区二区三区在线 | 亚洲天堂久久| 夜夜嗨网站十八久久| 日韩中文字幕av电影| 亚洲免费成人av在线| 日韩国产欧美在线视频| 国产精品美女在线观看直播| 黄色精品视频| 成人啊v在线| 国产模特精品视频久久久久| 久久视频精品| 欧美日韩免费观看一区=区三区| 久久www成人_看片免费不卡| 一区二区三区四区在线观看国产日韩| 亚洲2区在线| 国产精品亚洲欧美一级在线| 精品一区二区三区四区五区| 日本精品不卡| 伊人成人网在线看| 亚洲精品中文字幕99999| 欧美日韩伊人| 岛国av在线网站| 女主播福利一区| 亚洲精品国产日韩| 免费在线成人| 国产精品精品| 婷婷久久一区| 亚洲毛片在线| 国产精品久久777777毛茸茸| 热三久草你在线| 国产模特精品视频久久久久| 国产亚洲欧美日韩在线观看一区二区| 精品久久久久中文字幕小说| 精品一区毛片| 日韩精品免费一区二区夜夜嗨| 麻豆精品在线观看| 久久国产中文字幕| 亚洲伊人精品酒店| 久久影院一区二区三区| 欧美日韩中文一区二区| 亚洲天堂免费| 国产在线观看91一区二区三区| 久久亚洲国产| 欧美一级久久| 欧美日韩尤物久久| 日韩精品视频一区二区三区| 天堂√8在线中文| 亚洲精选av| 国产精品不卡| 亚洲专区视频| av中文字幕在线观看第一页| 伊人国产精品| 日本不良网站在线观看| 亚洲精品免费观看| 欧美日韩国产v| 中文字幕一区二区av| 理论片午夜视频在线观看| 老司机精品久久| 成人福利av| 欧美日本二区| 99国产精品久久久久久久成人热| 久久99青青| 亚洲影院天堂中文av色| 欧美日韩精品免费观看视完整| 日韩福利视频一区|