日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle中触发器的讲解

發布時間:2025/5/22 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle中触发器的讲解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  觸發器在數據庫里以獨立的對象存儲,它與存儲過程和函數不同的是,存儲過程與函數需要用戶顯示調用才執行,而觸發器是由一個事件來啟動運行。即觸發器是當某個事件發生時自動地隱式運行。并且,觸發器不能接收參數。所以運行觸發器就叫觸發或點火(firing)。ORACLE事件指的是對數據庫的表進行的INSERT、UPDATE及DELETE操作或對視圖進行類似的操作。ORACLE將觸發器的功能擴展到了觸發ORACLE,如數據庫的啟動與關閉等。所以觸發器常用來完成由數據庫的完整性約束難以完成的復雜業務規則的約束,或用來監視對數據庫的各種操作,實現審計的功能。

?

create sequence seq_userInfo_usid start with 1001;
create or replace triggle tri_userInfo_usid --創建或替換觸發器tri_userInfo_usid
before insert on userInfo --在向userInfo表中添加 記錄之前的觸發
for each row --沒影響一行出發一次
begin --觸發之后執行下面的語句
select seq_userInfo_usid.nextval into :new.usid from dual; --:new新值 :old老值
end;

?

案列

?

--日志 觸發器講解

--查看所有觸發器
select * from user_triggers;
--禁用觸發器
alert trigger tri_log_uname(觸發器名字) disable;
--激活觸發器
alert trigger tri_log_uname(觸發器名字) enble;
--重新編譯
alert trigger tri_log_uname complie;
--禁用某個表上的觸發器
alert table <table_name> diable all triggers;
create table log(
uname varchar2(20),
action varchar2(10),
acttime date
);

--從U001開始,以遞增的形式對uname進行命名
create sequence seq_log_uname start with 1001;
create or replace trigger tri_log_uname
before insert on log
for each row
begin
select 'U'||substr(seq_log_uname.nextval,1) into :new.uname from dual;
end;

insert into log values(1,'yc',sysdate);
select * from log;

create or replace trigger tri_log
after insert or update or delete on dept
for each row --for each 行級觸發,執行語句沒影響一行出發一次,默認是語句級觸發,沒執行一條語句觸發一次,無論該語句影響多少行,
begin
if inserting then
insert into log values(user,'insert',sysdate);
elsif updating then
insert into log values(user,'update',sysdate);
elsif deleting then
insert into log values(user,'delete',sysdate);
end if;
end;

select * from dept;
insert into dept values(80,'技術部','湖南衡陽');

select * from log;

--更改dept和emp中的deptno的值(涉及主外鍵)
create or replace trigger tri_dept
before update on dept
for each row
begin
update emp set deptno=:new.deptno where deptno=:old.deptno;
end;

update dept set deptno=88 where deptno=20;
select * from dual;
select * from dept;
select * from emp;


create or replace trigger tri_emp
before update of sal on emp --當修改emp表中的sal列在值時
for each row
when(new.sal<=old.sal)
begin
select 3000 into :new.sal from dual;
end;

select * from emp;
update emp set sal=4000 where empno=7369;


轉載于:https://www.cnblogs.com/yaobolove/p/4781971.html

總結

以上是生活随笔為你收集整理的oracle中触发器的讲解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美极品一区二区 | 国产在线v | 久久精品国产精品亚洲 | 五月婷婷免费视频 | 欧美黑人做爰爽爽爽 | 人成午夜| 久久精品视频6 | 亚洲欧洲一区二区 | 中文国产视频 | 不卡av一区| 三度诱惑免费版电影在线观看 | 天天躁日日躁狠狠躁免费麻豆 | 性欧美大战久久久久久久 | 国产精品久久久久影院老司 | 久久久亚洲av波多野结衣 | av操操操 | 在线中文字幕一区二区 | 人妻无码久久精品人妻 | 日本国产在线观看 | 人超碰| 国产精品亚洲一区二区三区 | 欧美视频性 | www.国产高清 | 白白色在线播放 | 黄色网在线 | 成年人午夜影院 | 亚洲人成网址 | 美女的胸给男人玩视频 | 国产精品一区麻豆 | 亚洲天堂成人在线观看 | 黄色同人网站 | 免费吃奶摸下激烈视频 | 91手机在线视频 | 国模视频一区 | 日本a√在线观看 | 久久久视频在线观看 | 四虎影视免费永久观看在线 | 伊人网视频在线 | 国产成人小视频 | 国产黄在线播放 | 久久亚洲综合色图 | 不卡的av在线 | 亚洲欧洲一区二区在线观看 | 51自拍视频 | 九九视频在线 | 99国产精品久久久 | 亚洲高潮无码久久 | 日本老熟妇毛茸茸 | 久久99日韩| 九热在线| 激情六月婷婷 | 久久久久久不卡 | 国产乱子视频 | 99青草 | 久久免费高清 | 亚洲制服一区二区 | 无码国精品一区二区免费蜜桃 | 成人性生交大片免费看r链接 | 色www亚洲国产阿娇yao | 亚洲天堂avav| 日产精品一区 | 久久精品色妇熟妇丰满人妻 | gogo亚洲国模私拍人体 | 日韩午夜在线播放 | 婷婷六月网 | 国产视频一区二区三区在线播放 | 欧美三级在线播放 | 亚洲成人经典 | 一级全黄裸体免费视频 | www.99re7.com| 草草影院在线观看 | 超碰人人网 | 99re在线视频精品 | 成人在线观看免费 | 恶虐女帝安卓汉化版最新版本 | 国产色啪| 天堂综合| 九月激情网 | 天天天天天天天天干 | 国产一级一区 | 色干干| 欧洲在线一区 | 欧美精品乱码久久久久久 | 色站综合| 精品视频999| 欧美放荡性医生videos | 韩日中文字幕 | av青青草| 亚洲字幕成人中文在线观看 | www.久久久久久久久 | 欧美色图一区二区 | 亚洲国产一区二区a毛片 | 学生调教贱奴丨vk | 亚洲国产精品美女 | 亚洲综合激情五月久久 | 亚洲 欧美 激情 另类 校园 | 天堂网av手机版 | www.99精品| 国内自拍第二页 |