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

5268f80b9b1e01f982625ef6fac83ca1.png

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

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

标签:最大   注销   http   stat   drop   insert   字段   start   最小值

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/lxy061654/p/11371408.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值