• 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;
  • 相关阅读:
    【转】关于Vue打包的一个要注意的地方
    ES6 简介
    java ee / JVM Tuning
    network / ifconfig
    My live Read / Oray.com / huashengke / peanut shell / dnspod.cn
    network / VXLAN spine和bord-leaf
    hd + TP-Link SG2008MP / switch
    elasticSearch+ik_smart 支持 符号检索
    使用java+http+Range头 实现视频分段下载
    springBoot+elasticSearch 使用function_score自定义评分
  • 原文地址:https://www.cnblogs.com/yijieyufu/p/11986088.html
Copyright © 2020-2023  润新知