oracle中设置表的主键字段为自增序列(实例)

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','系统注销')

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值