您当前的位置: AG亚游集团 > 数据库教程 > Oracle教程 > Oracle触发器简单实现

Oracle触发器简单实现

作者:不详 来源:网络 发布时间: 2014-09-01 11:42 点击: 次
緊racle】触发器简单实现 目标:实现实时备份uertest表数据至usertest_temp中,两表结构一致 解决:用oracle触发器实现同步 结果: 1.建表 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [sql] -- 简单的用户表 create table USERTEST ( NAME VARCHAR2(20) not null, AGE NUM

AG亚游集团,一本第一版第一次印刷的《哈利·波特与魔法石》拍出43750英镑(约合37.45万元人民币)的高价,打破该书的成交价纪录。英国《每日邮报》10日报道,在英国伦敦举行的宝龙精品图书和手稿拍卖上,一位本地商人经一番“激烈竞价”,成功拿下该书,成交价远超先前预估的1.5万至2万英镑(12.8万至17.1万元人民币)。

  NGI在43款游戏里面,除了特殊的植入手段以外,每一个游戏他有不同的内容,每一次投放他有不同的要求,除了特殊的以外,我们目前建立的一个是插播广告,类似于官网,或者类似游戏的通道平台。在这个游戏过程中,大家都知道,在玩游戏中有一个下载网站的过程,就是广告,在100款游戏里面,如果这个广告同时在线播出的的话,他的影响力非常大,比如说我们跟一家电脑公司,他专门开发电脑游戏的,我们这一百款游戏就支持这个电脑的使用,反过来这个电脑支持这100款游戏,都是一个非常好的建议。什么生意前景好“兵者诡道也。”谈起打破传统思维创新战法训法,王海峰说,要善于否定已有的思维模式和固定套路,通过不断否定自我,倒逼更多的奇招妙案、克敌之谋。因此,他们改变以往闭门空想、虚对虚单方面设计训练条件的演练模式,坚持在实兵对抗中根据形势的发展变化设计、比对和验证多套作战方案,力求多手准备、多案预置,力避思维缝隙、攻防死角和布局漏洞,不给对手任何可乘之机。

Oracle触发器简单实现

  Oracle触发器简单实现--table

  緊racle】触发器简单实现

  目标:实现实时备份uertest表数据至usertest_temp中,两表结构一致

  解决:用oracle触发器实现同步

  结果:

  1.建表

  [sql]

  -- 简单的用户表

  create table USERTEST

  (

  NAME VARCHAR2(20) not null,

  AGE NUMBER,

  ISDELETE VARCHAR2(4)

  )

  -- 备份表

  create table USERTEST_TEMP

  (

  NAME VARCHAR2(20) not null,

  AGE NUMBER,

  ISDELETE VARCHAR2(4)

  )

  2、触发器

  [sql]

  CREATE OR REPLACE TRIGGER tr_user_temp

  BEFORE

  INSERT OR UPDATE OR DELETE

  ON usertest FOR EACH ROW

  declare

  BEGIN

  IF inserting THEN

  INSERT INTO usertest_temp(name,age,isdelete)

  VALUES

  (

  :new.name,

  :new.age,

  :new.isdelete

  );

  ELSIF deleting THEN

  DELETE usertest_temp

  WHERE

  NAME =:OLD.NAME ;

  ELSIF updating THEN

  update usertest_temp

  SET age =:new.age,

  isdelete =:new.isdelete

  WHERE

  NAME =:OLD.NAME ;

  END IF ;

  END ;

  3.对USERTEST表执行增删改查操作,则usertest_temp表也会相应更改

  注意:标点符号一定要是英文标点,否则会有编译错误

  理解

  概念:

  触发器(trigger)是个特殊的存储过程,它的执行是由事件来触发自动地隐式运行[比如当对一个表进行操作( insert,delete,update)时就会激活它执行]。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。触发器与存储过程的唯一区别是触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行。

  创建语法:

  [sql]

  CREATE [OR REPLACE] TRIGGER trigger_name

  {BEFORE | AFTER }

  {INSERT | DELETE | UPDATE [OF column [, column …]]}

  [OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...]

  ON [schema.]table_name | [schema.]view_name

  [REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}]

  [FOR EACH ROW ]

  [WHEN condition]

  PL/SQL_BLOCK | CALL procedure_name;

  注释:

  CREATE [OR REPLACE] TRIGGER:创建或替换

  BEFORE 和AFTER:触发时序分别为前触发【在执行触发事件之前触发当前所创建的触发器】和后触发方式【在执行触发事件之后触发当前所创建的触发器】

  FOR EACH ROW:行触发器。

  行触发器:受到影响的每个数据行,只要它们符合触发约束条件,均激活一次触发器;

  语句触发器:将整个语句操作作为触发事件,当它符合约束条件时,激活一次触发器。

  当省略FOR EACH ROW 选项时,BEFORE 和AFTER 触发器为语句触发器,而INSTEAD OF 触发器则只能为行触发器。

  REFERENCING:说明相关名称,在行触发器的PL/SQL块和WHEN 子句中可以使用相关名称参照当前的新、旧列值,默认的相关名称分别为OLD和NEW。触发器的PL/SQL块中应用相关名称时,必须在它们之前加冒号(:),但在WHEN子句中则不能加冒号。

  WHEN 子句说明触发约束条件。

  Condition 为一个逻辑表达时,其中必须包含相关名称,而不能包含查询语句,也不能调用PL/SQL 函数。

  WHEN 子句指定的触发约束条件只能用在BEFORE 和AFTER 行触发器中,不能用在INSTEAD OF 行触发器和其它类型的触发器中。

  注意以下几点:

  1.触发器不接受参数。

  2.一个表上最多可有12个触发器,但同时、同事、同类的触发器只能有一个且不可矛盾。

  3.在一个表上的触发器越多,对在该表上的DML操作的性能影响就越大。

  4. 触发器最大为32KB。若确实需要,可以先建立过程,然后在触发器中用CALL语句进行调用。

  5. 在触发器的执行部分只能用DML语句(SELECT、INSERT、UPDATE、DELETE),不能使用DDL语句(CREATE、ALTER、DROP)。

  6. 触发器中不能包含事务控制语句(COMMIT,ROLLBACK,SAVEPOINT)。

  7.在触发器主体中调用的任何过程、函数,都不能使用事务控制语句。

  8. 在触发器主体中不能申明任何Long和blob变量。新值new和旧值old也不能向表中的任何long和blob列。

  9.不同类型的触发器(如DML触发器、INSTEAD OF触发器、系统触发器)的语法格式和作用有较大区别。

  问题:当触发器被触发时,要使用被插入、更新或删除的记录中的列值,有时要使用操作前、 后列的值.

  实现: :NEW 修饰符访问操作完成后列的值

  :OLD 修饰符访问操作完成前列的值

  特性 INSERT UPDATE DELETE

  OLD NULL 实际值 实际值

  NEW 实际值 实际值 NULL
分享到:
本文"Oracle触发器简单实现"由远航站长收集整理而来,仅供大家学习与参考使用。更多AG亚游集团尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 广告合作 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(AG亚游集团). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类AG亚游集团.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4
广西日报头版报道城围联:借体育盛事 塑城市英姿 欧盟对四家伊拉克企业解除制裁 冰花男孩获捐500元 官方回应其他捐款将帮更多人 郑智国家队百场仍需等待 恒大上港国脚迎空前考验 布沙尔成绩和排名均下滑 已遭多个赞助商抛弃 NCAA总决赛赔率:维拉诺瓦3年2冠近在咫尺! 重磅股撑市港股或再屠熊 惟三万一关阻力大 国台办前副主任:蔡英文渐进图“独” 台海危机增加 西甲详细赛程:8月19日开战 皇马巴萨3月再战 中纪委机关报:监察法补上行政监察范围过窄的短板 改革开放40周年 国资国企改革或有新突破 专家:特朗普可能对叙动武 意在转移国内政治压力
IMF:支持阿根廷浮动汇率政策 目标汇率不是融资条件 恒大连4场不胜追平队史最差 2平2负与卡帅一期持平 詹姆斯23号球衣在家乡退役!但并不是骑士(图) 利物浦新援回怼曼联名宿:我就是棒 不想理你 陆慧明竞彩:马竞让两球0 内含米兰阿森纳彩蛋 收市点评:金山逼近28港元 后市怎么看? 巴萨出局库鸟遭疯狂群嘲:让你还瞧不起利物浦? 马萨加盟文图里车队 明年征战FE赛场 空军战机双向绕岛巡航 国台办:强烈警告“台独” 国民党内有“三个太阳”? 台教授:对台湾是好事 也门游击队现多辆美武装皮卡 竟是缴获自沙特王爷军 吸毒男被击毙家属获赔160万 政府赔偿支票曝光
美国企业来大陆告台企业“不公平竞争” 啥情况? 正厅级跨两级高配任县委书记 他前任也属于高配 购房客涌入吉林珲春:有些人两周前刚在丹东买了房 宝马在中国首获自动驾驶路试牌照 美巡13冠得主李茨克去世 曾因香蕉腐烂故事闻名 江西官员亲属住别墅却被定为贫困户 书记连夜被免 日媒:东日本大地震迄今仍有7.3万人疏散在外 三分8中5太狠!广厦35岁老汉让客场只剩叹息 韩国人最喜欢的总统是谁:文在寅排第1 朴槿惠尴尬 怎么赚钱快 现实点的 适合女性开的十五种店 投资两万的小型加工厂 白手起家创业点子 AG亚游集团