• oracle 主键生成策略-sequence序列+trigger触发器


    oracle中设置表的主键字段为自增序列(实例)
    1、首先创建一个表(如日志表)

    //删除库表中存在的日志表
    drop table S_LOG_INFO cascade constraints;
    //新建日志表
    create table S_LOG_INFO
    (
    PRIMARYKEY NUMBER not null,//主键
    USERACCOUNT VARCHAR2(50),//操作用户账号
    USERNAME VARCHAR2(100),//操作用户
    OPERATIONTIME DATE,//操作时间
    LOGTYPE VARCHAR2(100),//日志类型
    SYSTEMTYPE VARCHAR2(500),//系统类型
    MODUAL VARCHAR2(100),//功能模块
    FUN VARCHAR2(50),//功能方法
    CONTENT VARCHAR2(500),//操作说明
    LOGSTATUS VARCHAR2(50),//操作结果
    constraint PK_S_LOG_INFO primary key (PRIMARYKEY)
    );
    2、创建主键序列

    /*创建自增序列*/
    CREATE SEQUENCE S_LOG_INFO_PRIMARYKEY_SEQUENCE
    MINVALUE 1 --最小值
    NOMAXVALUE --不设置最大值
    START WITH 1 --从1开始计数
    INCREMENT BY 1 --每次加1
    NOCYCLE --一直累加,不循环
    NOCACHE; --不建缓冲区
    3、创建触发器实现数据插入时触发主键自动增长

    CREATE OR REPLACE TRIGGER S_LOG_INFO_TRIGGER BEFORE INSERT ON S_LOG_INFO FOR EACH ROW WHEN(NEW.PRIMARYKEY IS NULL)
    BEGIN
    SELECT S_LOG_INFO_PRIMARYKEY_SEQUENCE.NEXTVAL INTO:NEW.PRIMARYKEY FROM dual;
    END;
    4、测试,添加数据

    INSERT
    INTO
    S_LOG_INFO
    (LOGSTATUS, USERACCOUNT, LOGTYPE, SYSTEMTYPE, CONTENT, FUN, USERNAME, MODUAL)
    VALUES
    ('成功','123','系统日志', 'XXXXXXX', '用户成功注销', 'doLogout', 'admin','系统注销')

    ————————————————
    版权声明:本文为CSDN博主「逆之雪」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_31811587/article/details/81128498

  • 相关阅读:
    测试方案
    如何编写一个好的测试计划
    一个好的测试过程
    java后台生成echarts图表并保存图片
    Javascript数组排序,并获取排序后位置对应的原索引(堆排序实现)
    修改tomcat编码方式
    json序列化反序列化后function丢失
    Mysql数据库存取性能优化
    java创建文件
    Java POI导出ppt简单实现
  • 原文地址:https://www.cnblogs.com/lxy061654/p/11371408.html
Copyright © 2020-2023  润新知