首页 > 技术文章 > 通过序列的方式设置Oracle表的id自增

xuyupengblogs 2021-04-28 17:08 原文

总共分为以下四步:

一、创建表

二、创建序列

三、创建触发器

四、插入测试数据

接下来,重点来了(敲黑板)~~

第一步:创建表(两种方式)

1.以小码的TMMIS10表为例,建表语句如下:

CREATE TABLE TMMIS10
(
    id INT NOT NULL,
    names VARCHAR2(40) NULL
)

2.当然也可以在Navicat工具的图形化界面中手动建表

 

第二步:创建序列(方式同上)

1.为TMMIS10创建序列的语句

# MMIS10 为序列名称
create sequence MMIS10 
increment by 1 
start with 1 
nomaxvalue 
nominvalue 
nocache;

注:1.如果序列创建错误或者想删除序列,则可以执行删除序列语句:

drop sequence 序列名;

  2.若想把序列转换十六进制(Oracle序列都是整数),可以执行以下语句

TO_CHAR(your_sequence.NEXTVAL,'XXXXXXXXXXXXXXXX') 

 

2.在Navicat工具的图形化界面中创建序列(不推荐)

 

第三步:创建触发器

为TMMIS10表创建触发器语句如下:

 

create or replace trigger MMIS10
before insert on TMMIS10 for each row 
begin 
    select MMIS10.nextval into :new.id from dual; 
end;

 

第五步:插入数据(方式同上)

1.插入数据的sql语句:

insert into TMMIS10(names) values ('张三');
insert into TMMIS10(names) values ('李四');

2.同样也可以直接在表里添加数据(此处省略)

 附上效果图:

 

推荐阅读