oracle数据库实现id自增教程

2020-01-21 16:42:38

方式一:

1.通过sequence实现

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

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

效果展示如下:

方式二:

1.通过sequence+触发器实现

2.sql如下:

插入数据sql如下:

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

效果展示如下:

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

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

<pre class="has">
     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;


  
  
  
  
  
- [点赞 ](javascript:;)
- [收藏](javascript:;)
- [分享](javascript:;)
- <a>  
    
    
    
    
    
    
    
    
  </a>
  - <a class="article-report">文章举报</a>
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »