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

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

Oracle中的觸發(fā)器trigger

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

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

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

1、行觸發(fā)器:

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

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

CREATE OR REPLACE TRIGGER tr_del_emp   BEFORE DELETE --指定觸發(fā)時(shí)機(jī)為刪除操作前觸發(fā)   ON scott.emp   FOR EACH ROW   --說明創(chuàng)建的是行級(jí)觸發(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:級(jí)聯(lián)更新:利用行觸發(fā)器實(shí)現(xiàn)級(jí)聯(lián)更新。在修改了主表regions中的region_id之后(AFTER),級(jí)聯(lián)的、自動(dòng)的更新子表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:限定只對(duì)部門號(hào)為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的人員的獎(jiǎng)金不能降");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ā)器:

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

限制對(duì)Departments表修改(包括INSERT,DELETE,UPDATE)的時(shí)間范圍,即不允許在非工作時(shí)間修改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, "不是上班時(shí)間,不能修改departments表"); END IF;END;

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

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

  • 只能被創(chuàng)建在視圖上。
  • 不能指定BEFORE 或 AFTER選項(xiàng)。
  • FOR EACH ROW子可是可選的,即INSTEAD OF觸發(fā)器只能在行級(jí)上觸發(fā)、或只能是行級(jí)觸發(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)之上時(shí),只有模式所指定用戶的DDL操作和它們所導(dǎo)致的錯(cuò)誤才激活觸發(fā)器, 默認(rèn)時(shí)為當(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í),該數(shù)據(jù)庫所有用戶的DDL操作和他們所導(dǎo)致的錯(cuò)誤,以及數(shù)據(jù)庫的啟動(dòng)和關(guān)閉均可激活觸發(fā)器。

要在數(shù)據(jù)庫之上建立觸發(fā)器時(shí),要求用戶具有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)刪除表或視圖時(shí),建立在這些對(duì)象上的觸發(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的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持。

標(biāo)簽: Oracle
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲色图国产| 国产精品毛片久久久| 国产伦精品一区二区三区在线播放 | 国产精品久久乐| 国产精品极品在线观看| 国产精品手机在线播放| 麻豆一区在线| 精品美女在线视频| 捆绑调教日本一区二区三区| 国产一区三区在线播放| 青青青免费在线视频| 午夜精品久久久久久久久久蜜桃| 久久精品不卡| 久久电影一区| 日韩精品三级| 国产精品a级| 麻豆国产欧美日韩综合精品二区| 麻豆精品99| 色天使综合视频| 99综合视频| 日韩av一区二区三区| 国产精品mv在线观看| 97精品国产一区二区三区| 亚洲精品在线影院| 国产亚洲欧洲| 亚洲一区不卡| 98精品视频| 欧美成人精品三级网站| 午夜久久影院| 国产精品网址| 先锋影音久久久| 综合日韩av| 国产亚洲毛片在线| 亚洲精品一区二区妖精| 九九九精品视频| 人人精品亚洲| 六月婷婷一区| 国产视频一区二| 色偷偷色偷偷色偷偷在线视频| 日韩中文影院| 一二三区精品| 欧美激情日韩| 国产中文一区| 日韩精彩视频在线观看| 麻豆国产欧美日韩综合精品二区| 日韩中文在线电影| 欧美成人国产| 日韩av不卡在线观看| 精品亚洲免a| 亚洲欧洲午夜| 欧美韩一区二区| 中文欧美日韩| 麻豆成人91精品二区三区| 伊人久久大香线蕉av不卡| 婷婷综合电影| 婷婷综合六月| 欧美日韩伊人| 亚洲成人三区| 麻豆精品视频在线| 视频在线在亚洲| 欧美国产不卡| 欧美亚洲国产精品久久| 91精品国产自产观看在线| 欧美日韩在线观看视频小说| 日韩av二区在线播放| 999视频精品| 国产精品一区二区av交换| 欧美日韩三区| 国产suv精品一区二区四区视频| 日韩中文字幕91| 中文在线资源| 欧美日韩中文| 午夜欧美视频| 国产va在线视频| 日韩国产在线一| 激情五月综合网| 免费一级欧美在线观看视频| 一区三区视频| 国产理论在线| 青草综合视频| 午夜国产精品视频| 黄色精品网站| 在线综合欧美| 欧美不卡视频| 丝袜美腿亚洲一区二区图片| 免费人成在线不卡| 日韩精品一二三四| 综合一区二区三区| 国产91在线精品| 99久久99视频只有精品| 国产成人调教视频在线观看| 日韩国产在线观看一区| 国产精品13p| 国产videos久久| 久久精品国产99久久| 91精品在线免费视频| 欧美日韩18| 视频一区欧美日韩| 国产精品1luya在线播放| 国产亚洲一区| 91av亚洲| 亚洲午夜免费| 麻豆精品新av中文字幕| 国产美女一区| 国产白浆在线免费观看| 色一区二区三区四区| 亚洲制服一区| 在线午夜精品| 99久久九九| 亚洲风情在线资源| 久久精品一本| 牛牛精品成人免费视频| 欧美日韩视频免费看| 日韩午夜视频在线| 视频一区日韩精品| 日韩午夜视频在线| 日韩欧美久久| 日韩黄色在线观看| 欧美亚洲二区| 日韩国产欧美视频| 91久久精品无嫩草影院| 日韩va欧美va亚洲va久久| 日韩一区网站| 欧美日本不卡| 欧美久久久网站| 日韩不卡手机在线v区| 国产欧美一区二区三区精品观看| 欧美亚洲一区二区三区| 国产欧美丝祙| 另类小说一区二区三区| 国产激情在线播放| 视频福利一区| 一级欧洲+日本+国产| 麻豆亚洲精品| 亚洲开心激情| 久久狠狠久久| 97久久亚洲| 欧美国产三级| 日本激情一区| 视频福利一区| 亚洲综合另类| 色综合视频一区二区三区日韩 | 影音先锋国产精品| 国产视频一区免费看| 蜜桃久久精品一区二区| 日韩高清一级| 欧美1区二区| 国产一区二区三区天码| 久久精品免费一区二区三区 | 久久精品国产99久久| 日韩一级网站| 日本不卡高清视频| 国产精品成人国产| 国产精品精品国产一区二区| 国产99精品| 亚洲不卡视频| 精品资源在线| 免费视频国产一区| 日韩中文字幕不卡| 国产精品伊人| 成人欧美一区二区三区的电影| 亚洲精品小说| 国产日韩欧美中文在线| 国产a亚洲精品| 国产亚洲精品久久久久婷婷瑜伽| 91麻豆精品| 视频二区不卡| 日本不卡不码高清免费观看| 精品国产乱码久久久| 午夜久久久久| 国产欧美日韩| 99久久精品网| 日本国产一区| 日韩成人精品一区二区| 国产一区91| 国产精品sm| 午夜久久tv| 免费在线亚洲欧美| 激情婷婷综合| 国产欧美日韩亚洲一区二区三区| 日韩免费看片| 三级久久三级久久久| 中文字幕一区久| 日韩激情视频网站| 99久久夜色精品国产亚洲狼| 日韩av网站在线免费观看| 青青久久av| 国产欧美一级| 欧美日韩亚洲在线观看| 日韩av不卡一区二区| 亚洲国产专区| 国产精品久久久久久久久久妞妞| 欧美在线观看视频一区| 国产免费播放一区二区| 欧美日韩国产高清电影| 国产福利一区二区三区在线播放| 国产二区精品| 久久亚洲黄色| 亚洲综合专区| 黄毛片在线观看|