触发器trigger

触发器我们也可以认为是存储过程,是一种特殊的存储过程。

存储过程:有输入参数和输出参数,定义之后需要调用

触发器:没有输入参数和输出参数,定义之后无需调用,在适当的时候会自动执行。

适当的时候:触发器与表相关,当我们对这个相关的表中的数据进行DDL(数据的添加、修改、删除)操作的时候

存储过程

触发器

create proc proc_name

--声明输入参数和输出参数

as

--过程体

go

create trigger tri_student_delete on student for delete

as

go

:触发器是在对应的操作执行完成之后才执行的

SQLServer的数据字典中,提供了一张表deleted用户存储最后一次执行删除的数据

create trigger tri_student_delete on student for delete

as

   print '这是我们的第一个触发器';

   select * from deleted;

go

create trigger tri_student_insert on student for insert

as

   print '这是tri_student_insert';

go

create trigger tri_student_delete_insert on student for insert,delete

as

   print '触发器';

go

--删除一个学生信息,如果学生的年龄<21,则不进行删除

create trigger tri_stu_delete on student for delete

as

   declare @age int

   select  @age=sage from deleted--deleted存储执行删除的数据

   if(@age<21)

   begin

      raiserror('学生年龄太小,手下留情!',18,11);

      rollback;--撤销执行的操作

   end

go

序列

Create Sequence gygddj_cfjczb_Sequence
Increment by 1 -- 每次加几个
start with 1 -- 从1开始计数
nomaxvalue -- 不设置最大值,设置最大值:maxvalue 9999
nocycle -- 一直累加,不循环
cache 10;

可以与序列配合使用(实现自增)

 Create trigger gygddj_cfjczb_Sequence before
insert on gygddj_cfjczb for each row /*对每一行都检测是否触发*/
begin
select gygddj_cfjczb_Sequence.nextval into:New.AUTOID from dual;
end;

oracle 触发器(自增写法)的更多相关文章

  1. oracle触发器中增删改查本表

    oracle触发器中增删改查本表 (1)只有before insert触发器中才可以查询或更新本表 create or replace trigger tri_test_ins before inse ...

  2. oracle触发器自增字段

    1.创建序列 代码 -- Create sequence create sequence seq_userinfo minvalue 1 start with 1 increment by 1; 2. ...

  3. Oracle存储过程(增、删、改)写法、oracle执行存储过程

    Oracle存储过程(增.删.改)写法 发布时间: 2010-3-24 11:07    作者: ZHF    来源: 51Testing软件测试网采编 字体:  小  中  大  | 上一篇 下一篇 ...

  4. 2014/11/06 Oracle触发器初步 2014-11-06 09:03 49人阅读 评论(0) 收藏

    触发器我就不多解释了,保证数据的完整性的神器,嗯..也是减少程序员工作托管给数据库操作的好帮手.就不讲一些大道理了.通俗点,我们对数据库的操作,无非就是增 删 改 查. 触发器就是在删,改,增的时候( ...

  5. oracle触发器应用

    首先给大家推荐两篇我看后的博文,我已经内容转载过来: 1.对触发器的讲解 本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建 ...

  6. SQL server与Oracle触发器的创建与使用

    SQL Server 1创建触发器 GO BEGIN IF (object_id('WMY', 'tr') is not null) DROP trigger WMY END; GO CREATE T ...

  7. Oracle ID 自增

    实现Oracle Id自增 1.方法一(Oracle Version Oracle 12c版本支持) create table app_student( id integer generated by ...

  8. Oracle触发器用法实例详解

    转自:https://www.jb51.net/article/80804.htm. 本文实例讲述了Oracle触发器用法.分享给大家供大家参考,具体如下: 一.触发器简介 触发器的定义就是说某个条件 ...

  9. Oracle列自增实现(2)-Identity Columns in Oracle Database 12c Release 1 (12.1)

    Oracle列自增-Identity Columns in Oracle Database 12c Release 1 (12.1) 在ORACLE 12C以前的版本中,如果要实现列自增长,需要通过序 ...

  10. oracle列自增实现(1)-Sequence+Trigger实现Oracle列自增

    Sequence+Trigger实现Oracle列自增 序列的语法格式为: CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE ...

随机推荐

  1. 最强中文NLP预训练模型艾尼ERNIE官方揭秘【附视频】

    “最近刚好在用ERNIE写毕业论文” “感觉还挺厉害的” “为什么叫ERNIE啊,这名字有什么深意吗?” “我想让艾尼帮我写作业” 看了上面火热的讨论,你一定很好奇“艾尼”.“ERNIE”到底是个啥? ...

  2. (Java) RedisUtils

    package com.vcgeek.hephaestus.utils; import org.springframework.beans.factory.annotation.Autowired; ...

  3. PHP获取当前时间

    PHP获取系统当前时间,有date()可以使用. 但date()当前系统时间是格林威治时间,比我们所在的时区晚了整整8个小时.以前处理这个问题时,只是简单的把获取的当前系统的时间戳加上8个小时的时间, ...

  4. 上下文管理器及with的相关总结

    什么是上下文管理器 基本语法 with EXPR as VAR: BLOCK 概念 上下文表达式:with open('test.txt') as f: 上下文管理器:open('test.txt') ...

  5. Scrapy进阶知识点总结(六)——中间件详解

    概述 查看scrapy官网的框架图,可以看出中间件处于几大主要组件之间,类似于生产流水线上的加工过程,将原料按照不同需求与功能加工成成品 其中4,5处于下载器与引擎之间的就是下载中间件,而spider ...

  6. MyBatis批量插入模板

    oracle: <insert id="insertBatch" parameterType="List"> INSERT INTO TStuden ...

  7. Algorithm: GCD、EXGCD、Inverse Element

    数论基础 数论是纯数学的一个研究分支,主要研究整数的性质.初等数论包括整除理论.同余理论.连分数理论.这一篇主要记录的是同余相关的基础知识. 取模 取模是一种运算,本质就是带余除法,运算结果就是余数. ...

  8. iOS核心动画高级技巧-1

    1. 图层树 图层的树状结构 巨妖有图层,洋葱也有图层,你有吗?我们都有图层 -- 史莱克 Core Animation其实是一个令人误解的命名.你可能认为它只是用来做动画的,但实际上它是从一个叫做L ...

  9. 前端 vue单页面应用刷新网页后vuex的state数据丢失的解决方案(转载)

    最近接手了一个项目,前端后端都要做,之前一直在做服务端的语言.框架和环境,前端啥都不会啊. 突然需要前端编程,两天速成了JS和VUE框架,可惜还是个半吊子.然后遇到了一个困扰了一整天的问题.一直调试都 ...

  10. 用户环境变量 shell变量 别名

    常见用户环境变量: 环境变量 说明 LANG   HOME   LOGNAME 用户名 PATH   SHELL   PWD   查看环境变量用:env或者echo $LANG 设置用户环境变量:ex ...