电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

oracle觸發(fā)器介紹

瀏覽:683日期:2023-11-30 08:45:48

一 觸發(fā)器介紹

觸發(fā)器是一種特殊的存儲過程,它在插入,刪除或修改特定表中的數(shù)據(jù)時觸發(fā)執(zhí)行,它比數(shù)據(jù)庫本身標(biāo)準(zhǔn)的功能有更精細(xì)和更復(fù)雜的數(shù)據(jù)控制能力。數(shù)據(jù)庫觸發(fā)器有以下的作用:

* 安全性。可以基于數(shù)據(jù)庫的值使用戶具有操作數(shù)據(jù)庫的某種權(quán)利。

# 可以基于時間限制用戶的操作,例如不允許下班后和節(jié)假日修改數(shù)據(jù)庫數(shù)據(jù)。

# 可以基于數(shù)據(jù)庫中的數(shù)據(jù)限制用戶的操作,例如不允許股票的價格的升幅一次超過10%。

* 審計(jì)。可以跟蹤用戶對數(shù)據(jù)庫的操作。

# 審計(jì)用戶操作數(shù)據(jù)庫的語句。

# 把用戶對數(shù)據(jù)庫的更新寫入審計(jì)表。

* 實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)完整性規(guī)則。

# 實(shí)現(xiàn)非標(biāo)準(zhǔn)的數(shù)據(jù)完整性檢查和約束。觸發(fā)器可產(chǎn)生比規(guī)則更為復(fù)雜的限制。與規(guī)則不同,觸發(fā)器可以引用列或數(shù)據(jù)庫對象。例如,觸發(fā)器可回退任何企圖吃進(jìn)超過自己保證金的期貨。

# 提供可變的缺省值。

* 實(shí)現(xiàn)復(fù)雜的非標(biāo)準(zhǔn)的數(shù)據(jù)庫相關(guān)完整性規(guī)則。觸發(fā)器可以對數(shù)據(jù)庫中相關(guān)的表進(jìn)行連環(huán)更新。例如,在auths表author_code列上的刪除觸發(fā)器可導(dǎo)致相應(yīng)刪除在其它表中的與之匹配的行。

# 在修改或刪除時級聯(lián)修改或刪除其它表中的與之匹配的行。

# 在修改或刪除時把其它表中的與之匹配的行設(shè)成NULL值。

# 在修改或刪除時把其它表中的與之匹配的行級聯(lián)設(shè)成缺省值。

# 觸發(fā)器能夠拒絕或回退那些破壞相關(guān)完整性的變化,取消試圖進(jìn)行數(shù)據(jù)更新的事務(wù)。當(dāng)插入一個與其主健不匹配的外部鍵時,這種觸發(fā)器會起作用。例如,可以在books.author_code列上生成一個插入觸發(fā)器,如果新值與auths.author_code列中的某值不匹配時,插入被回退。

* 同步實(shí)時地復(fù)制表中的數(shù)據(jù)。

* 自動計(jì)算數(shù)據(jù)值,如果數(shù)據(jù)的值達(dá)到了一定的要求,則進(jìn)行特定的處理。例如,如果公司的帳號上的資金低于5萬元則立即給財(cái)務(wù)人員發(fā)送警告數(shù)據(jù)。

ORACLE與SYBASE數(shù)據(jù)庫的觸發(fā)器有一定的區(qū)別,下面將分別講述這兩種數(shù)據(jù)庫觸發(fā)器的作用和寫法。

二 ORACLE 觸發(fā)器

ORACLE產(chǎn)生數(shù)據(jù)庫觸發(fā)器的語法為:

create [or replace] trigger 觸發(fā)器名 觸發(fā)時間 觸發(fā)事件

on 表名

[for each row]

pl/sql 語句

其中:

觸發(fā)器名:觸發(fā)器對象的名稱。由于觸發(fā)器是數(shù)據(jù)庫自動執(zhí)行的,因此該名稱只是一個名稱,沒有實(shí)質(zhì)的用途。

觸發(fā)時間:指明觸發(fā)器何時執(zhí)行,該值可取:

before---表示在數(shù)據(jù)庫動作之前觸發(fā)器執(zhí)行;

after---表示在數(shù)據(jù)庫動作之后出發(fā)器執(zhí)行。

觸發(fā)事件:指明哪些數(shù)據(jù)庫動作會觸發(fā)此觸發(fā)器:

insert:數(shù)據(jù)庫插入會觸發(fā)此觸發(fā)器;

update:數(shù)據(jù)庫修改會觸發(fā)此觸發(fā)器;

delete:數(shù)據(jù)庫刪除會觸發(fā)此觸發(fā)器。

表 名:數(shù)據(jù)庫觸發(fā)器所在的表。

for each row:對表的每一行觸發(fā)器執(zhí)行一次。如果沒有這一選項(xiàng),則只對整個表執(zhí)行一次。

舉例:下面的觸發(fā)器在更新表auths之前觸發(fā),目的是不允許在周末修改表:

create trigger auth_secure

before insert or update or delete //對整表更新前觸發(fā)

on auths

begin

if(to_char(sysdate,'DY')='SUN'

RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表auths');

end if;

end

三 SYBASE數(shù)據(jù)庫觸發(fā)器

SYBASE數(shù)據(jù)庫觸發(fā)器的作用與ORACLE非常類似,僅有較小的差異。

SYBASE產(chǎn)生觸發(fā)器的語法為:

CREATE TRIGGER 觸發(fā)器名

ON 表名

FOR INSERT,UPDATE,DELETE

AS

SQL_statement |

FOR INSERT,UPDATE

AS

IF UPDATE(column_name) [AND|OR UPDATE(column_name)]...

SQL_statements

上面FOR子句用來指定在觸發(fā)器上的哪些數(shù)據(jù)更新命令可激活該觸發(fā)器。IF UPDATE子句檢查對指定列的操作類型,在IF UPDATE子句中可指定多個列。

與ORACLE不同,對于每條SQL語句,觸發(fā)器只執(zhí)行一次。觸發(fā)器在數(shù)據(jù)更新語句完成以后立即執(zhí)行。觸發(fā)器和啟動它的語句被當(dāng)作一個事務(wù)處理,事務(wù)可以在觸發(fā)器中回退。

下面舉例說明SYBASE觸發(fā)器的寫法。

create trigger forinsert_books

on books

for insert

as

if(select count(*) from auths,inserted

where auths.author_code=insert.author_code)!=@@rowcount

begin

rollback transaction

print 'books 表中 author_code 列的值在auths 表中不存在。'

end

除時把其它表中的與之匹配的行設(shè)成NULL值。

# 在修改或刪除時把其它表中的與之匹配的行級聯(lián)設(shè)成缺省值。

# 觸發(fā)器能夠拒絕或回退那些破壞相關(guān)完整性的變化,取消試圖進(jìn)行數(shù)據(jù)更新的事務(wù)。當(dāng)插入一個與其主健不匹配的外部鍵時,這種觸發(fā)器會起作用。例如,可以在books.author_code列上生成一個插入觸發(fā)器,如果新值與auths.author_code列中的某值不匹配時,插入被回退。

* 同步實(shí)時地復(fù)制表中的數(shù)據(jù)。

* 自動計(jì)算數(shù)據(jù)值,如果數(shù)據(jù)的值達(dá)到了一定的要求,則進(jìn)行特定的處理。例如,如果公司的帳號上的資金低于5萬元則立即給財(cái)務(wù)人員發(fā)送警告數(shù)據(jù)。

ORACLE與SYBASE數(shù)據(jù)庫的觸發(fā)器有一定的區(qū)別,下面將分別講述這兩種數(shù)據(jù)庫觸發(fā)器的作用和寫法。

二 ORACLE 觸發(fā)器

ORACLE產(chǎn)生數(shù)據(jù)庫觸發(fā)器的語法為:

create [or replace] trigger 觸發(fā)器名 觸發(fā)時間 觸發(fā)事件

on 表名

[for each row]

pl/sql 語句

其中:

觸發(fā)器名:觸發(fā)器對象的名稱。由于觸發(fā)器是數(shù)據(jù)庫自動執(zhí)行的,因此該名稱只是一個名稱,沒有實(shí)質(zhì)的用途。

觸發(fā)時間:指明觸發(fā)器何時執(zhí)行,該值可取:

before---表示在數(shù)據(jù)庫動作之前觸發(fā)器執(zhí)行;

after---表示在數(shù)據(jù)庫動作之后出發(fā)器執(zhí)行。

觸發(fā)事件:指明哪些數(shù)據(jù)庫動作會觸發(fā)此觸發(fā)器:

insert:數(shù)據(jù)庫插入會觸發(fā)此觸發(fā)器;

update:數(shù)據(jù)庫修改會觸發(fā)此觸發(fā)器;

delete:數(shù)據(jù)庫刪除會觸發(fā)此觸發(fā)器。

表 名:數(shù)據(jù)庫觸發(fā)器所在的表。

for each row:對表的每一行觸發(fā)器執(zhí)行一次。如果沒有這一選項(xiàng),則只對整個表執(zhí)行一次。

舉例:下面的觸發(fā)器在更新表auths之前觸發(fā),目的是不允許在周末修改表:

create trigger auth_secure

before insert or update or delete //對整表更新前觸發(fā)

on auths

begin

if(to_char(sysdate,'DY')='SUN'

RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表auths');

end if;

end

三 SYBASE數(shù)據(jù)庫觸發(fā)器

SYBASE數(shù)據(jù)庫觸發(fā)器的作用與ORACLE非常類似,僅有較小的差異。

SYBASE產(chǎn)生觸發(fā)器的語法為:

CREATE TRIGGER 觸發(fā)器名

ON 表名

FOR INSERT,UPDATE,DELETE

AS

SQL_statement |

FOR INSERT,UPDATE

AS

IF UPDATE(column_name

標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 【直乐】河北石家庄脊柱侧弯医院_治疗椎间盘突出哪家医院好_骨科脊柱外科专业医院_治疗抽动症/关节病骨伤权威医院|排行-直乐矫形中医医院 | 脉冲布袋除尘器_除尘布袋-泊头市净化除尘设备生产厂家 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | 手板-手板模型-手板厂-手板加工-生产厂家,[东莞创域模型] | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | 粘度计维修,在线粘度计,二手博勒飞粘度计维修|收购-天津市祥睿科技有限公司 | 无轨电动平车_轨道平车_蓄电池电动平车★尽在新乡百特智能转运设备有限公司 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 慈溪麦田广告公司,提供慈溪广告设计。 | 合肥钣金加工-安徽激光切割加工-机箱机柜加工厂家-合肥通快 | 不发火防静电金属骨料_无机磨石_水泥自流平_修补砂浆厂家「圣威特」 | 铁艺,仿竹,竹节,护栏,围栏,篱笆,栅栏,栏杆,护栏网,网围栏,厂家 - 河北稳重金属丝网制品有限公司 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 钢格板|热镀锌钢格板|钢格栅板|钢格栅|格栅板-安平县昊泽丝网制品有限公司 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 高压贴片电容|贴片安规电容|三端滤波器|风华电容代理南京南山 | 转子泵_凸轮泵_凸轮转子泵厂家-青岛罗德通用机械设备有限公司 | 高硼硅玻璃|水位计玻璃板|光学三棱镜-邯郸奥维玻璃科技有限公司 高温高压釜(氢化反应釜)百科 | 优宝-汽车润滑脂-轴承润滑脂-高温齿轮润滑油脂厂家 | 磁粉制动器|张力控制器|气胀轴|伺服纠偏控制器整套厂家--台灵机电官网 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 广州昊至泉水上乐园设备有限公司| 恒温油槽-恒温水槽-低温恒温槽厂家-宁波科麦仪器有限公司 | 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 冷却塔改造厂家_不锈钢冷却塔_玻璃钢冷却塔改造维修-广东特菱节能空调设备有限公司 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 柔性输送线|柔性链板|齿形链-上海赫勒输送设备有限公司首页[输送机] | 培训中心-海南香蕉蛋糕加盟店技术翰香原中心官网总部 | 冷热冲击试验箱_温度冲击试验箱价格_冷热冲击箱排名_林频厂家 | 北京网站建设-企业网站建设-建站公司-做网站-北京良言多米网络公司 | 有源电力滤波装置-电力有源滤波器-低压穿排电流互感器|安科瑞 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 背压阀|减压器|不锈钢减压器|减压阀|卫生级背压阀|单向阀|背压阀厂家-上海沃原自控阀门有限公司 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 快速门厂家批发_PVC快速卷帘门_高速门_高速卷帘门-广州万盛门业 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 板材品牌-中国胶合板行业十大品牌-环保板材-上海声达板材 |