欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Oracle筆記(九)、觸發(fā)器

1、觸發(fā)器一旦創(chuàng)建就會立刻生效,有時可能需要臨時禁用觸發(fā)器,最常見的原因就是涉及數據加載。
ALTER TRIGGER trigger_name [ENABLE | DISABLE];

    2、Oracle 觸發(fā)器里兩個重要的內存邏輯表 :old 和 :new。:old 表保存的是在DML語句之前的數據,:new 表保存的是在DML語句創(chuàng)建的數據。
        old    new
INSERT    -    √
DELETE    √    -
UPDATE    √    √

    3、在觸發(fā)器語句中不能顯式的提交/回滾事務。




一、行級觸發(fā)器
行級觸發(fā)器對 DML 語句影響的每個行執(zhí)行一次。主要應用保持數據完整性。

創(chuàng)新互聯建站長期為近1000家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態(tài)環(huán)境。為溫州企業(yè)提供專業(yè)的做網站、成都網站建設,溫州網站改版等技術服務。擁有10多年豐富建站經驗和眾多成功案例,為您定制開發(fā)。

例:兩表級聯更新,修改部門表編號的同時也修改員工表的部門編號:
CREATE OR REPLACE TRIGGER update_dept
  /* 行級觸發(fā)器,在更新部門表操作后觸發(fā) */
  AFTER UPDATE ON deptment
  FOR EACH ROW
BEGIN
  /* new、old 表的有效利用,把舊表的id列值 更新為 新表的id列值 */
  UPDATE emp SET id=:new.id WHERE id=:old.id;
END;

UPDATE deptment SET id='yy' WHERE id='01';

SELECT * FROM deptment;
SELECT * FROM emp;


插入時利用觸發(fā)器+序列實現整型字段的自增:
CREATE OR REPLACE TRIGGER set_no
  BEFORE INSERT ON auto
  FOR EACH ROW
DECLARE 
  sn number(5);
BEGIN
  /* 觸發(fā)器預處理序列的值 */
  SELECT myseq.nextval INTO sn FROM dual;
  :NEW.a := sn;
END;

INSERT INTO auto VALUES(21,'dtt');
SELECT * FROM auto;
/* 插入時表a列由觸發(fā)器產生的值替代用戶的輸入 */



二、語句級觸發(fā)器
只與語句有關,與行無關,不涉及數據完整性問題。

例如:利用觸發(fā)器記錄,記錄某表中用戶的操作(日志處理)。
CREATE OR REPLACE TRIGGER dm1_aa
  AFTER INSERT OR DELETE OR UPDATE ON aa
BEGIN
  IF INSERTING THEN
    INSERT INTO mylog VALUES(user,sysdate,'I');
  ELSEIF DELETING THEN
    INSERT INTO mylog VALUES(user,sysdate,'D');
  ELSE
    INSERT INTO mylog VALUES(user,sysdate,'U');
  END IF;
END;

ps.能否記錄多個表?"after insert or delete or update on t1,t2" 出錯。



三、替換觸發(fā)器
解決Oracle視圖中多表更新的限制,只能在視圖中使用,屬于行級觸發(fā)器。

例如:在視圖中插入新的部門同時插入其所屬的新員工:
CREATE OF REPLACE TRIGGER tr_v_e_d
  /* 在視圖上創(chuàng)建替換觸發(fā)器 */
  INSTEAD OF INSERT ON v_emp_dept
  FOR EACH ROW
BEGIN
  /* 替換觸發(fā)器先插入部門表的信息,然后再插入其所屬員工表的信息 */
  INSERT INTO deptment VALUES(:new.id, :new.name);
  INSERT INTO emp(eid, ename, sex, id) VALUES(:new.eid, :new.ename, :new.sex, :new.d);
END;

INSERT INTO v_emp_dept VALUES('456', 'test', 'f', '33', 'hg');
SELECT * FROM v_emp_dept;



四、模式級觸發(fā)器
可以在模式對象的操作上建立的觸發(fā)器,如 CREATE、ALTER、DROP、GRANT、REVOKE 和 TRUNCATE 等DDL語句。
[BEFORE | AFTER] trigger_event ON [schema.]SCHEMA

例如:對用戶所刪除的所有對象進行日志記錄
CREATE OR REPLACE TRIGGER log_drop_obj
  AFTER DROP ON SCHEMA
BEGIN
  /* 記錄操作類型、操作對象、操作時間 */
  INSERT INTO dropped_obj VALUES(ORA_DICT_OBJ_NAME, ORA_DICT_TYPE, SYSDATE);
END;

CREATE TABLE for_drop(x char);
DROP TABLE for_drop;

SELECT * FROM dropped_obj;




五、數據庫級觸發(fā)器
可以創(chuàng)建在數據庫事件上的觸發(fā)器,包括啟動、關閉、服務器錯誤、登錄和注銷等。這些事件都是實例范圍內的,不與特定的表或視圖關聯。

CREATE OR REPLACE TRIGGER system_startup
  AFTER STARTUP ON DATABASE
BEGIN
  ...
END;

網頁題目:Oracle筆記(九)、觸發(fā)器
分享地址:http://aaarwkj.com/article30/isggpo.html

成都網站建設公司_創(chuàng)新互聯,為您提供商城網站網頁設計公司、網站建設、微信小程序、靜態(tài)網站網站策劃

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都網站建設
日本av在线中文一区二区| 国产乱一伦一性一情一色| 日韩一区二区三区av在线| 欧美一区二区三区午夜| 亚欧熟女乱色一二三区日韩| 日韩成人手机视频在线观看| 国产黄片大秀在线观看| 野花日本免费高清完整| 午夜丁香婷婷爽少妇av| 日本国产福利视频在线观看 | 日本熟妇一区二区三区在线视频 | 亚洲国产日韩伦中文字幕| 九九有点热以前的视频| 91久久精品国产一区| 国产丝袜美腿诱惑久久| 亚洲国产欲色有一二欲色| 精品嫩模福利一区二区蜜臀| 国产伦理在线观看一区二区| 午夜影院在线观看网站| 黄色国产欧美国产亚洲| 国产一区二区三区免费有码视频| 色婷婷亚洲综合色一区二区| 国产黄色片网站在线看| 精品国产一区二区成人| 精品人妻区二区三区蜜桃| 好色人妻在线播放中文字幕| 欧美激情一区二区三区蜜桃| 免费中文字幕av电影| 国产一区二区三区百合| 麻豆视传媒短视频免费看| 欧美成人精品欧美一级黄片| 91一区二区三区在线| 日韩经典三级精品自拍| 美女床上激情啪啪网页| 成人福利网站午夜一区| 亚洲精品紧身裙女教师av| 91九色在线porny| 男女搞j视频网站免费观看| 中文字幕精品一区二区三区视频| 久久精品国产亚洲成人av| 天堂av一区二区在线播放|