oracle触发器的写法是什么


在oracle中,触发器是在指定条件成立时,会自动执行定义的语句,写法为“create [or replace] tigger 触发器名 触发时间 触发事件 on 表名[for each row]begin pl/sql语句 end”。

oracle触发器的写法是什么

本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。

oracle触发器的写法是什么

一、触发器简介

触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。

因此触发器不需要人为的去调用,也不能调用。

然后,触发器的触发条件其实在你定义的时候就已经设定好了。

这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。

详细的介绍可以参考网上的资料,简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次。

具体举例:

1、 在一个表中定义的语句级的触发器,当这个表被删除时,程序就会自动执行触发器里面定义的操作过程。这个就是删除表的操作就是触发器执行的条件了。

2、 在一个表中定义了行级的触发器,那当这个表中一行数据发生变化的时候,比如删除了一行记录,那触发器也会被自动执行了。

二、触发器语法

触发器的语法:

create [or replace] tigger 触发器名 触发时间 触发事件
on 表名
[for each row]
begin
 pl/sql语句
end

其中:

  • 触发器名:触发器对象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。

  • 触发时间:指明触发器何时执行,该值可取:

  • before:表示在数据库动作之前触发器执行;

  • after:表示在数据库动作之后触发器执行。

  • 触发事件:指明哪些数据库动作会触发此触发器:

  • insert:数据库插入会触发此触发器;

  • update:数据库修改会触发此触发器;

  • delete:数据库删除会触发此触发器。

    十天学会PHP教程 十天学会PHP教程

    以前写了十天学会ASP,十天学会ASP.NET什么的,现在想想再写个PHP吧,也算比较全了。 PHP的调试方法我这里就不说了,外面很多文章都有介绍,也有很多不同的组合。我这里暂时是以 Apache web server 和 MY SQL 作为WEB服务器和数据库,在php-4.3.3下的环境做的程序。当然要简单的构建和访问查看数据库 PHPMYADMIN 不可少。

    十天学会PHP教程 482 查看详情 十天学会PHP教程
  • 表 名:数据库触发器所在的表。

  • for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。

触发器能实现如下功能:

功能:

1、 允许/限制对表的修改

2、 自动生成派生列,比如自增字段

3、 强制数据一致性

4、 提供审计和日志记录

5、 防止无效的事务处理

6、 启用复杂的业务逻辑

举例

1)、下面的触发器在更新表tb_emp之前触发,目的是不允许在周末修改表:

create or replace trigger auth_secure before insert or update or DELETE
on tb_emp
begin
  IF(to_char(sysdate,'DY')='星期日') THEN
    RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表tb_emp');
  END IF;
END;
/

2)、使用触发器实现序号自增

创建一个测试表:

create table tab_user(
  id number(11) primary key,
  username varchar(50),
  password varchar(50)
);

创建一个序列:

复制代码 代码如下:

create sequence my_seq increment by 1 start with 1 nomaxvalue nocycle cache 20;

创建一个触发器:

CREATE OR REPLACE TRIGGER MY_TGR
 BEFORE INSERT ON TAB_USER
 FOR EACH ROW--对表的每一行触发器执行一次
DECLARE
 NEXT_ID NUMBER;
BEGIN
 SELECT MY_SEQ.NEXTVAL INTO NEXT_ID FROM DUAL;
 :NEW.ID := NEXT_ID; --:NEW表示新插入的那条记录
END;

向表插入数据:

insert into tab_user(username,password) values('admin','admin');
insert into tab_user(username,password) values('fgz','fgz');
insert into tab_user(username,password) values('test','test');
COMMIT;

查询表结果:SELECT * FROM TAB_USER;

推荐教程:《Oracle视频教程》

以上就是oracle触发器的写法是什么的详细内容,更多请关注其它相关文章!


# 是在  # 惠州网络营销推广价格  # 吉林定制型网站建设费用  # seo教程月入十万  # 晋宁推广公司招聘网站  # 移动网站建设专业品牌  # 网站改版建设有哪些内容  # 邵东手机网站建设  # 投资网站建设需要  # 推荐邵阳网站建设  # 洛龙区seo优化哪里有  # oracle  # 这一  # 周末  # 如何设置  # 客户端  # 怎么看  # 创建一个  # 就会  # 默认值  # 十天 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 电脑桌面图标怎么变大变小_Windows个性化设置第一课【新手入门】  腾讯QQ邮箱官方入口 QQ邮箱网页版登录平台  KFC邀请码怎么使用领额外优惠_KFC邀请码输入方式与额外优惠代码获取方法  荣耀 Magic10 Pro 系统更新提示失败_荣耀 Magic10 Pro 升级修复  德邦快递会员怎么开通  Lar*el 关联查询:同时筛选父表与子表数据的高效策略  狙击外星人小游戏在线链接_狙击外星人小游戏网页链接  夸克浏览器资源嗅探怎么用 夸克浏览器网页资源下载技巧【教程】  Golang如何使用log记录日志信息_Golang log日志记录方法总结  键盘声音异常怎么回事_键盘异响怎么处理  word页码灰色不能用如何解决  汽水音乐官网网页版入口 汽水音乐官网网页版在线入口  使用逻辑应用(Logic Apps)自动处理邮件附件中的XML到Excel  抖音小程序怎么开通?小程序开通条件是什么?  edge浏览器怎么修改语言为中文_Edge界面语言切换教程  感染了幽门螺杆菌一定会导致胃癌吗?蚂蚁庄园今日答案最新11.30  Win10如何关闭操作中心通知 Win10免打扰设置全攻略【清爽】  《全民k歌》网页版最新登录入口一览  管理打开的编辑器:固定、分组和关闭技巧  支付宝如何解绑云闪付_支付宝与云闪付账户关联解除方法  在Flask应用中安全高效地更新SQLAlchemy用户数据  mysql离线安装后如何启动_mysql离线安装完成后启动服务的方法  原子笔记app误删找回教程  《kimi智能助手》制作ppt教程  Magento 2 产品保存事件中安全更新属性的最佳实践  php如何实现多域名共享session_php存储session到redis与跨域读取配置  如何取消数字签名  哈尔滨城市通昵称修改方法  电脑开不了机怎么办 电脑无法开机的解决方法  第五人格PC版怎么避免被封号_第五人格PC版防封号注意事项  易车网官网直达入口 易车网在线登录入口  多多买菜门店端app订单查看方法  抖音网页版官方链接 抖音网页版官网链接入口  123网页端官方登录页 123邮箱网页版即时通讯服务  动漫岛在线动漫网 动漫岛动漫在线观看官方入口  Google Drive API服务器端访问指南:服务账户认证详解  如何发挥新媒体矩阵作用?新媒体矩阵怎么搭建?  解决Windows上Composer PATH变量冲突导致的命令无法识别问题  小红书网页版在线直达 小红书网页版免费登录入口  Word 2003字体大小设置方法  Yandex俄罗斯搜索引擎官网入口 Yandex网页端直接访问  如何配置VS Code作为您Git操作的默认编辑器  顺丰速运官网查询入口 顺丰物流查询官网入口链接  Pandas中基于动态偏移量实现DataFrame列值位移的策略  中通快递官网指定查询 中通快递单号查询平台入口  QQ邮箱PC端登录页面_QQ邮箱网页版登录界面  如何在Python中安全地将环境变量转换为整数并满足Mypy类型检查  优化 React onClick 事件处理:函数引用与箭头函数的对比  顺丰快递收费标准查询_如何查看顺丰最新收费价格  Word如何将文字快速转成表格 Word文本转换成表格功能使用技巧【效率】 

 2022-01-25

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.