Oracle触发器创建及其功能

下面的文章主要介绍的是如何创建Oracle触发器,同时介绍了Oracle触发器的功能、语法,而且通过具体的例子可以让大家更深入的`掌握。

1.创建表t1 :create table t1 (id number,name nvarchar(8));

2.创建Oracle序列 :CREATE SEQUENCE t1_id INCREMENT BY 1 START WITH 1 MAXVALUE

3.创建Oracle触发器 :

CREATE TRIGGER tig_insert_t1

BEFORE INSERT ON "YINZQ"."T1"

begin

if (:new.id is null) then

select t1_id.nextval into :new.id from dual; //其中的:new.id 指的是t1表中新行的列

end if;

end;

4.Oracle触发器功能

触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。

功能:

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

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

3)强制数据一致性

4)提供审计和日志记录

5)防止无效的事务处理

6)启用复杂的业务逻辑

5.触发器触发使用有两种:after和before。

Oracle触发器的语法:

CREATE [OR REPLACE] TIGGER触发器名 触发时间 触发事件

ON表名

[FOR EACH ROW]

BEGIN

pl/sql语句

END

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

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

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

after---表示在数据库动作之后出发器执行。

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

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

举例说明:让Oracle实现自增字段

步骤:先建序列,然后建立一个Oracle触发器实现!

cata0是表名,cata0_id是需要自增的字段!

CREATE SEQUENCE SEQ_cata0

INCREMENT BY 1

START WITH 1

MAXVALUE 9999999

CREATE TRIGGER TRG_cata0 BEFORE

INSERT ON cata0

FOR EACH ROW begin

INTO :NEW.cata0_ID

from DUAL;

End TRG_cata0;

/****@PARAM STNAME 不要创建序列的表,多个表则以“,”隔开**/

CREATE OR REPLACE PROCEDURE PROC_CREATE_SEQ_TRIG(STNAME IN VARCHAR2)

AS

STRSQL VARCHAR2(4000);

TABLENAME VARCHAR2(50);

PID VARC ......

【Oracle触发器创建及其功能】相关文章:

oracle中触发器的创建,Oracle触发器创建及其功能相关推荐

  1. oracle中的guid,在Oracle中使用Guid

    在Oracle中使用Guid 在Oracle中使用Guid 在Oracle中可以用SYS_GUID()来生成一个guid,相当于msSql中的newid(). 在Oracle9i和Oracle 10g ...

  2. oracle数据库insert into,oracle中insert into用法 oracle中insert如何带条件添加数据?

    oracle insert into 脚本怎么写 INSE INTO BOOK(bookid,name,price) VALUES('100123','oracle ',54); 或者 INSE IN ...

  3. oracle中如何加字母,Oracle数据库之oracle数据库表插入数据的时候如何产生一个字母+数字...

    本文主要向大家介绍了Oracle数据库之oracle数据库表插入数据的时候如何产生一个字母+数字,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle 语句中" ...

  4. oracle中pdbs是什么,Oracle 12c启动时PDBs的自动打开

    Pluggable Database(PDB)为Oracle 12c中的一个重要的新特性, 但启动12c实例时并不会自动打开PDB数据库,这样,在启动实例后必须手动打开PDBs. 1. 实例启动后,手 ...

  5. 查询oracle中用户的角色,oracle中用户角色的查询和授权

    用户拥有的系统权限 select  privilege  from dba_sys_privs  where grantee='&USERNAME' union select  privile ...

  6. oracle中的输入 amp,Oracle之SQL学习

    1.Oracle 更改会话(更改oracle中显示日期的方式) SQL> alter session set NLS_date_format='YYYY-MM-DD'; 2.使用绑定变量来输入记 ...

  7. oracle中dblink怎么用,Oracle中建立了dblink怎么使用

    Oracle应用服务器OS 1.查看数据库的global_name SELECT * FROM GLOBAL_NAME; 2.查看global_name参数是true还是false show para ...

  8. oracle中的 expdp命令,Oracle 10G 数据泵中EXPDP命令行选项介绍

    以下的文章主要是浅谈Oracle 10G 数据泵学习纪要中EXPDP命令行选项,我在一个信誉度很好的网站找到一个关于Oracle 10G 数据泵学习纪要中EXPDP命令行选项的资料,拿出来供大家分享. ...

  9. oracle中schema是什么,ORACLE中的两个概念:user和schema的区别和联系

    今天重读ORACLE官方文档<concepts>,读到schema的基本概念,对它的理解更进一层, 官方文档中关于schema是这样解释的: "A schema is a col ...

  10. oracle中nowait怎么用,oracle中UPDATE nowait 的使用方法介绍

    oracle中UPDATE nowait 的使用方法介绍 1.UPDATE nowait 应用以下场景:查询某条数据,并对其开启数据库事务.如果查询的当前数据没有加锁,则正确返回结果,并对当前数据加锁 ...

最新文章

  1. 景德镇陶瓷学院计算机协会,景德镇陶瓷学院计算机协会换届大会总结报告
  2. 2021年春季学期-信号与系统-第四次作业参考答案-第八小题
  3. url参数传递 java_URL中文参数传递问题
  4. 基于运维网V8环境安装ntop
  5. boost::python::detail::result相关的测试程序
  6. malloc,free,new,delete解析(原)
  7. Oracle 10.2.0.5升级至11.2.0.4
  8. 多媒体分析与理解_如何设计一个出色的数字多媒体展厅?
  9. navigator工具_推荐!11个令人惊叹的前端开发工具,值得拥有
  10. java外卖系统源码_JAVAWEB校园订餐系统项目源码 一个外卖点餐系统 - 下载 - 搜珍网...
  11. pytorch 解压kaggle中的zgz文件
  12. android 盒子gpu,挑选电视盒子时CPU和GPU哪个更重要?
  13. python计算复合年化增长率、年化波动率与夏普比率
  14. 安慕希酸奶推出草莓味了
  15. intel 7260 wifi linux,TK1入门教程基础篇-安装intel7260无线网卡
  16. ARFoundation系列讲解 - 80 AR内容制作一
  17. Python学习日志12 - 办公自动化
  18. office2019下载
  19. 计算机与通信专业英语教学大纲,通信工程专业英语教学大纲.doc
  20. 微信小程序苹果手机左右拉扯出现空白区域

热门文章

  1. c语言中哪个是错误的常量,以下所列的C语言常量中,错误的是__________ 。
  2. JavaFX桌面应用开发-菜单栏-MenuBar、Menu 、MenuItem
  3. 2021年安全员-B证考试题及安全员-B证报名考试
  4. 宝塔虚拟服务器,通过宝塔面板配置虚拟主机(共享服务器)
  5. 使用echarts绘制地图、线图(飞行路线图)时需要的json资源
  6. 2023年批量下载和改名音频专辑(多页列表)
  7. FusionCharts绘图插件详解
  8. 自制APP连接OneNET---实现数据监控和下发控制(MQTT)
  9. 印尼shopee如何布局-扬帆凌远
  10. oracle--2.服务