数据库
首页 > 数据库> > oracle数据库实现id自增

oracle数据库实现id自增

作者:互联网

方式一:

1.通过sequence实现

2.sql如下:创建表sql和sequence

创建完成sql之后下面是插入数据sql:

效果展示如下:

方式二:

1.通过sequence+触发器实现

2.sql如下:

插入数据sql如下:

注意:这种方式相比上面方式多创建一个触发器,但是插入数据时候不需要sequence.nextval

效果展示如下:

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

上面sql截图不太方便,下面是sql源码:


		 create table stud(
						 id number,
						 name varchar2(64),
						 descr varchar2(256),
						 primary key(id) 
					);
  
    create sequence stu_sequence  increment  by 1  ----每次递增1
                                  start with 1  ----从1开始
                                  nomaxvalue   -----没有最大值
                                  minvalue 1    ----最小值1
                                  nocycle ;   ----不循环

insert into stud VALUES(stu_sequence.nextval,'陈深','武警特工'); ----stu_sequence.nextval实现自增效果
select * from stud;  
                                                     

----------------------------------------------------------------------
 create table stud1(
         id number,
         name varchar2(64),
         descr varchar2(256),
         primary key(id) 
      );

create sequence stu_sequence1  increment  by 1  ----每次递增1
                                  start with 1  ----从1开始
                                  nomaxvalue   -----没有最大值
                                  minvalue 1    ----最小值1
                                  nocycle ;   ----不循环

create or replace trigger t_stud_trigger  ----触发器名称,随意起
              before insert on stud1  ---创建的表名
              for each row
              when(new.id is null)   ----id主键
              begin
              select  stu_sequence1.nextval into:NEW.ID from dual; ---stu_sequence(序列名字)   NEW.ID(ID主键)
              end ;

insert into stud1(name,descr) values('娜可露露','保护我方打野');
insert into stud1(name,descr) values('不知火舞','保护我方输出');
select * from stud1;

 

一曲、凤求凰 发布了87 篇原创文章 · 获赞 38 · 访问量 21万+ 私信 关注

标签:自增,sequence,create,stud1,stu,sql,oracle,id
来源: https://blog.csdn.net/royal1235/article/details/104062285