欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

oracle 实现自增auto_increament 博客分类: Oracle小记 oracle自加auto_increament 

程序员文章站 2024-02-13 16:51:58
...

在mysql中,实现字段自增,只用给他设置为auto_increase就ok了

 

这是简单的*啊(但是多数据库共享,分布式计算就不适用了,呵呵)

 

在oracle中没有这样便捷的功能,所以只能用sequence加trigger来解决这个问题

 

以下是一个Demo:

    创建sequence

-- create sequence of id of the table sql_template_set 
create sequence sql_template_id_seq
increment by 1
start with 60
nomaxvalue
nominvalue
nocache;

 

    创建表 sql_template_set (id为主键,并且为自增字段)

    create table SQL_TEMPLATE_SET

(
  SENTENCE    VARCHAR2(2000),
  TEMPLATESQL VARCHAR2(300),
  TABLEIDS    VARCHAR2(100),
  ID          NUMBER(6) not null
)
alter table SQL_TEMPLATE_SET
  add constraint TEMPLATE_ID primary key (ID)

 

    创建触发器,在insert数据之前,添加id的值

    -- 创建自增触发器

create or replace trigger sql_template_con_tri
before insert on sql_template_set for each row
begin
       -- 设置sql主键自增
      select sql_template_id_seq.nextval into :new.id from dual;
end;

 

    完毕,现在可以测试一下下

     -- 测试表trigger

insert into sql_template_set(sentence,templatesql,tableids) values('dirktest','dirktest','dirktest') 
commit;
 

    结果主键id就从60开始,每加条数据递增1

 

上一篇: Python实现多文件批量裁剪

下一篇: