oracle中触发器的创建,Oracle触发器创建及其功能
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触发器创建及其功能相关推荐
- oracle中的guid,在Oracle中使用Guid
在Oracle中使用Guid 在Oracle中使用Guid 在Oracle中可以用SYS_GUID()来生成一个guid,相当于msSql中的newid(). 在Oracle9i和Oracle 10g ...
- oracle数据库insert into,oracle中insert into用法 oracle中insert如何带条件添加数据?
oracle insert into 脚本怎么写 INSE INTO BOOK(bookid,name,price) VALUES('100123','oracle ',54); 或者 INSE IN ...
- oracle中如何加字母,Oracle数据库之oracle数据库表插入数据的时候如何产生一个字母+数字...
本文主要向大家介绍了Oracle数据库之oracle数据库表插入数据的时候如何产生一个字母+数字,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle 语句中" ...
- oracle中pdbs是什么,Oracle 12c启动时PDBs的自动打开
Pluggable Database(PDB)为Oracle 12c中的一个重要的新特性, 但启动12c实例时并不会自动打开PDB数据库,这样,在启动实例后必须手动打开PDBs. 1. 实例启动后,手 ...
- 查询oracle中用户的角色,oracle中用户角色的查询和授权
用户拥有的系统权限 select privilege from dba_sys_privs where grantee='&USERNAME' union select privile ...
- oracle中的输入 amp,Oracle之SQL学习
1.Oracle 更改会话(更改oracle中显示日期的方式) SQL> alter session set NLS_date_format='YYYY-MM-DD'; 2.使用绑定变量来输入记 ...
- oracle中dblink怎么用,Oracle中建立了dblink怎么使用
Oracle应用服务器OS 1.查看数据库的global_name SELECT * FROM GLOBAL_NAME; 2.查看global_name参数是true还是false show para ...
- oracle中的 expdp命令,Oracle 10G 数据泵中EXPDP命令行选项介绍
以下的文章主要是浅谈Oracle 10G 数据泵学习纪要中EXPDP命令行选项,我在一个信誉度很好的网站找到一个关于Oracle 10G 数据泵学习纪要中EXPDP命令行选项的资料,拿出来供大家分享. ...
- oracle中schema是什么,ORACLE中的两个概念:user和schema的区别和联系
今天重读ORACLE官方文档<concepts>,读到schema的基本概念,对它的理解更进一层, 官方文档中关于schema是这样解释的: "A schema is a col ...
- oracle中nowait怎么用,oracle中UPDATE nowait 的使用方法介绍
oracle中UPDATE nowait 的使用方法介绍 1.UPDATE nowait 应用以下场景:查询某条数据,并对其开启数据库事务.如果查询的当前数据没有加锁,则正确返回结果,并对当前数据加锁 ...
最新文章
- 景德镇陶瓷学院计算机协会,景德镇陶瓷学院计算机协会换届大会总结报告
- 2021年春季学期-信号与系统-第四次作业参考答案-第八小题
- url参数传递 java_URL中文参数传递问题
- 基于运维网V8环境安装ntop
- boost::python::detail::result相关的测试程序
- malloc,free,new,delete解析(原)
- Oracle 10.2.0.5升级至11.2.0.4
- 多媒体分析与理解_如何设计一个出色的数字多媒体展厅?
- navigator工具_推荐!11个令人惊叹的前端开发工具,值得拥有
- java外卖系统源码_JAVAWEB校园订餐系统项目源码 一个外卖点餐系统 - 下载 - 搜珍网...
- pytorch 解压kaggle中的zgz文件
- android 盒子gpu,挑选电视盒子时CPU和GPU哪个更重要?
- python计算复合年化增长率、年化波动率与夏普比率
- 安慕希酸奶推出草莓味了
- intel 7260 wifi linux,TK1入门教程基础篇-安装intel7260无线网卡
- ARFoundation系列讲解 - 80 AR内容制作一
- Python学习日志12 - 办公自动化
- office2019下载
- 计算机与通信专业英语教学大纲,通信工程专业英语教学大纲.doc
- 微信小程序苹果手机左右拉扯出现空白区域
热门文章
- c语言中哪个是错误的常量,以下所列的C语言常量中,错误的是__________ 。
- JavaFX桌面应用开发-菜单栏-MenuBar、Menu 、MenuItem
- 2021年安全员-B证考试题及安全员-B证报名考试
- 宝塔虚拟服务器,通过宝塔面板配置虚拟主机(共享服务器)
- 使用echarts绘制地图、线图(飞行路线图)时需要的json资源
- 2023年批量下载和改名音频专辑(多页列表)
- FusionCharts绘图插件详解
- 自制APP连接OneNET---实现数据监控和下发控制(MQTT)
- 印尼shopee如何布局-扬帆凌远
- oracle--2.服务