zoukankan      html  css  js  c++  java
  • oracle 触发器trigger(主键自增长)

    触发器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;
  • 相关阅读:
    css3 文本超出后出现省略号
    Bootstrap 开关(switch)控件需要注意的问题
    angularJs 使用中遇到的问题小结【一:关于传参】
    ctrl+enter提交留言
    div a块状布局
    模态框 快速选定合适的布局
    ionic 项目分享No.2——简化版【转】
    jquery判断div是否显示或者隐藏
    phpsotrm 设置命名空间
    win10 cmd 替换 powershell
  • 原文地址:https://www.cnblogs.com/yijieyufu/p/11986088.html
Copyright © 2011-2022 走看看