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


相关推荐: J*aScript对象中深度嵌套URL键的查找与更新策略  申通快递物流信息查询 申通快递包裹状态追踪  圆通快递官方入口不需要登录 在线查询入口快速查询  Lar*el Eloquent中通过Join查询关联数据表:解决多行子查询问题  顺丰快递在线查询系统 顺丰快递官方查单入口  怎么恢复删除的电脑文件_数据恢复软件使用教程  Word如何将文字快速转成表格 Word文本转换成表格功能使用技巧【效率】  Linux如何自动分析系统异常日志_Linux日志智能检测  如何在 WordPress 前端实现内容提交:古腾堡编辑器的替代方案与实践  高效调试PHP大型嵌套数组:JSON序列化与可视化工具实践  微博网页版访问入口 微博网页版网页端使用指南  猫眼app抢票快还是小程序快  在PHP环境中正确加载HTML资源:CSS样式与图片路径指南  《豆瓣》私信用户方法  感染了幽门螺杆菌一定会导致胃癌吗?蚂蚁庄园今日答案最新11.30  windows10怎么开启wsl_windows10安装linux子系统教程  《知到》打卡课程方法  AffinityDesigner图层蒙版怎么用_AffinityDesigner图层蒙版设计应用  德邦物流在线查询系统 德邦快递货物运输追踪  CSS如何使用outline-offset与颜色组合突出元素边框  c++如何实现观察者设计模式_c++行为型设计模式实战  QQ邮箱手机版网页版 QQ邮箱登录入口地址  惠普电脑BIOS界面看不懂怎么办_HP电脑BIOS功能选项解读与设置  2025考研成绩查询时间入口分享  悟空浏览器网页版在线工具 悟空浏览器网页版在线平台入口  夸克浏览器资源嗅探怎么用 夸克浏览器网页资源下载技巧【教程】  C++中的explicit关键字有什么作用_C++类型转换控制与explicit使用  Pydantic 中“schema”字段命名冲突的解决方案  PHP utf8_encode 字符编码转换疑难解析与最佳实践  Win11怎么设置分辨率 Win11显示设置调整分辨率及刷新率修改  2025SNH48年度青春盛典门票价格及购买方式  鸿蒙单条备忘录如何加密  《偃武》甘宁技能详解  CodeIgniter 3 连接 SQL Server:正确获取查询结果的教程  《美篇》取消会员自动续费方法  C++中std::thread和std::async的区别_C++并发编程与线程与异步任务比较  微信步数怎么刷_微信步数快速提升技巧  优化 React onClick 事件处理:函数引用与箭头函数的对比  我的世界官方网址入口 我的世界游戏主页直达入口  小红书如何引流到私信?引流到私信有用吗?  QQ邮箱官方登录页_腾讯出品安全稳定的邮箱服务  植物大战僵尸95版游戏版下载_植物大战僵尸95版游戏版安装指南  如何解决Casbin日志与应用日志不统一的问题,使用casbin/psr3-bridge实现无缝集成  鲁班大师乓乓皮肤获取方法  Mac怎么关闭按键声音_Mac键盘打字音效设置  Git命令与VS Code UI操作的对应关系解析  晨报|开发商暗示《空洞骑士:丝之歌》DLC开发中 《合金装备4》有望重制  《U校园》学生登录入口2025  《下一站江湖2》风神腿获取攻略  谷歌浏览器怎么把网页翻译成中文_Chrome网页翻译功能使用方法 

 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.