本Oracle教程解释了如何在Oracle中创建Before Delete触发器的语法和示例。

Before Delete触发器表示Oracle将在执行删除操作之前触发此触发器。

语法

在Oracle / PLSQL中创建Before Delete触发器的语法是:

CREATE [ OR REPLACE ] TRIGGER trigger_name

BEFORE DELETE

ON table_name

[ FOR EACH ROW ]

DECLARE

-- variable declarations

BEGIN

-- trigger code

EXCEPTION

WHEN ...

-- exception handling

END;

参数:

OR REPLACE - 可选的。 如果指定,它允许您重新创建已存在的触发器,以便可以在不发出DROP TRIGGER语句的情况下更改触发器定义。

trigger_name - 要创建的触发器的名称。

Before Delete - 它表示触发器将在执行Delete操作之前触发。

table_name - 创建触发器的表的名称。

限制

无法在视图上创建Before触发器。

可以更新:NEW值。

无法更新:OLD值。

示例

我们来看看如何使用CREATE TRIGGER语句创建Before Delete触发器的示例。

需要先创建下面一个表:

CREATE TABLE orders

( order_id number(5),

quantity number(4),

cost_per_item number(6,2),

total_cost number(8,2)

);

然后使用CREATE TRIGGER语句创建一个Before Delete触发器,如下所示:

提示:使用SQLPlus时,需要在触发后在新行上输入斜杠。 否则,脚本将不会执行。

CREATE OR REPLACE TRIGGER orders_before_delete

BEFORE DELETE

ON orders

FOR EACH ROW

DECLARE

v_username varchar2(10);

BEGIN

-- Find username of person performing the DELETE on the table

SELECT user INTO v_username

FROM dual;

-- Insert record into audit table

INSERT INTO orders_audit

( order_id,

quantity,

cost_per_item,

total_cost,

delete_date,

deleted_by )

VALUES

( :old.order_id,

:old.quantity,

:old.cost_per_item,

:old.total_cost,

sysdate,

v_username );

END;

/

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

oracle数据库触发器删除不,Oracle之后删除触发器相关推荐

  1. Oracle数据库:创建、修改、删除、使用同义词synonym和索引index

    Oracle数据库:创建.修改.删除.使用同义词synonym和索引index 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得 ...

  2. oracle数据库存储结构语句,oracle之物理数据库结构描述

    oracle之物理数据库结构概述 oracle的物理结构其实是由各种各样的文件组成的, 其中与数据库相关的有: 数据文件(data file):这些文件是数据库的主要文件:其中包括数据表.索引和所有其 ...

  3. oracle 数据库问题,ORACLE数据库常见问题汇总,oracle常见问题汇总

    ORACLE数据库常见问题汇总,oracle常见问题汇总 提交事务的时候提示(数据库被一个用户锁住的解决方法) select object_id,session_id,locked_mode from ...

  4. oracle数据库模糊搜索表名,Oracle基本概念和介绍

    Oracle基本概念 Oracle Database的基本概念 一个Oracle服务器 是一个数据管理系统,它提供开放的,全面的,近乎完整的信息管理 Oracle服务器有两大部分组成 一个Oracle ...

  5. oracle数据库初始化失败怎么办,oracle数据库正常停止

    利用dbstart和dbshut脚本自动启动和停止数据库的问题 客户的两台IBM Power 740小型机使用HACMP软件创建互备关系的数据库服务器,每台小型机运行一个数据库,任何一台服务器出现故障 ...

  6. oracle数据库没有选项,创建oracle数据库时,出现ORA-00922: 选项缺失或无效

    sdd53HOME 新建oracle数据库时遇到ORA-00922: 选项缺失或无效的问题,如图: 原因:一般是语句的语法有问题.比如命名不对,关键字写错等等.对于非标准的命名,一般采用双引号来创建. ...

  7. oracle数据库的拼接字符串,Oracle数据库拼接字符串

    Ora-03113\Ora-03114与Oracle In 拼接字符串的问题 刚深入接触Oracle不久(大学里以及刚参加工作时学到的Oracle知识只能算是皮毛),因为之前使用SqlServer有将 ...

  8. 本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案

    本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案 参考文章: (1)本机未装Oracle数据库时N ...

  9. 没有oracle客户端可以连接数据库,Oracle数据库之SqlDbx连接oracle(无需安装Oracle客户端)...

    本文主要向大家介绍了Oracle数据库之SqlDbx连接oracle(无需安装Oracle客户端),通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 标签:acl   str    ...

  10. oracle数据库怎么分组查询,oracle数据库之分组查询

    本章内容和大家分享的是数据当中的分组查询.分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1  多表查询2)而在 ...

最新文章

  1. linux从源码编译软件,linux软件包管理——源码包编译安装
  2. c语言万年历设计目的,万年历设计报告
  3. Jupyter运行GitHub里的MXNet源代码
  4. linux中使用u盘和光驱的命令_linux命令详解之挂载光驱的方法
  5. 计算机科学与技术专业的英文作文,计算机专业英语:科技交流与科技论文写作...
  6. 常见ActiveX控件下载大全
  7. arduino GPS 经纬度解析(C语言)
  8. 本科最高5w!毕业生落户指南!18城市人才引进补贴
  9. linux去掉锁屏密码,安卓手机锁屏密码清除方法 android7.0锁屏密码怎么去除
  10. 【Flink】Flink中的窗口函数、时间语义及watermark
  11. 百度排名批量查询_企业网站建设,核心关键词排名丢失,怎么办?
  12. Playwright选择器
  13. python链式函数_python 链式
  14. leetcode 组合总和IV(Java)
  15. 推荐一款自带很好用的桌面便签
  16. Android之内嵌PDF预览
  17. Java设计模式学习2:行为模式
  18. [EDI实施案例] 耐世特/Nexteer DESADV报文的业务解读
  19. MySQL 开启大页内存
  20. layui表格 列自动适应大小失效

热门文章

  1. Delta3d插件机制
  2. SSD( Single Shot MultiBox Detector)关键源码解析
  3. 2021中国数字服务大会 | 阿里云混合云新一代运维演进与实践
  4. 在家“隔离”这1个月,阿里云视频云这些工程师都经历了什么?
  5. 阿里云数据库四位小伙伴聚齐!共同开启生态合作新篇章!
  6. 你知道 Java 类是如何被加载的吗?
  7. 关于Paxos 幽灵复现问题的看法
  8. 日志服务与SIEM(如Splunk)集成方案实战
  9. 90后实习生,是如何成长为阿里云分布式NoSQL领域专家
  10. 冬奥网络安全卫士被表彰突出贡献,探寻冬奥背后的安全竞技