前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle触发器概念和模板

Oracle触发器概念和模板

作者头像
共饮一杯无
发布2022-11-24 19:25:53
3220
发布2022-11-24 19:25:53
举报

🥪触发器的基本概念

当定义的 '触发条件' 成立时,其语句就会 '自动执行'  ,触发条件可以是对表数据的新增修改或者删除等。触发器的作用保护数据的安全,监视对数据的各种操作,如  '日志记录': 对重要表的 '修改' 进行记录。

🌮触发器和存储过程的区别?

主要区别:'调用运行方式不同'

存储过程: '用户'、'应用程序'、'触发器' 来调用 触发器:   '自动执行'(满足 '触发条件'),与其它无关

🌯创建触发器

格式:

代码语言:javascript
复制
create [or replace] trigger 触发器名
   触发时间 {before | after}           -- view 中是 instead of
   触发事件 {insert | update | delete} -- dml、ddl、database
on 触发对象                            -- table、view、schema、database 
   触发频率 {for each row}            -- 行级触发器。默认:语句级触发器
   [follows 其它触发器名]              -- 多个触发器执行的 前后顺序
   [when 触发条件]
begin
   pl/sql 语句;
end;

💡说明: 触发器名:一般格式 tr_* 触发时间:在 '触发事件' 发生之前(before)还是之后(after) 触发事件:根据不同的 '触发事件',可以分为不同的 '类型' 触发对象:table、view、schema、database 触发频率:'语句级触发器'(默认)指触发一次,'行级触发器' 每一行触发一次 触发条件:仅当 '触发条件' 为 True 时,才执行 pl/sql 语句

🥙使用案例

代码语言:javascript
复制
create or replace trigger tr_user_info
  after update of sno, name on user_info
  for each row
begin
  if :new.id <> :old.id or :new.username <> :old.usernamethen
    raise_application_error(-20001,
                            '禁止修改系统用户! id = ' || :new.id || ', username = ' ||
                            :new.username);
  end if;
end;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🥪触发器的基本概念
    • 🌮触发器和存储过程的区别?
    • 🌯创建触发器
    • 🥙使用案例
    相关产品与服务
    对象存储
    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档