当前位置:首页 > 开发 > 数据库 > 正文

oracle 实现自增auto_increament

发表于: 2012-09-19   作者:blackproof   来源:转载   浏览次数:
摘要: 在mysql中,实现字段自增,只用给他设置为auto_increase就ok了   这是简单的傻子啊(但是多数据库共享,分布式计算就不适用了,呵呵)   在oracle中没有这样便捷的功能,所以只能用sequence加trigger来解决这个问题   以下是一个Demo:     创建sequence -- create se

在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

 

oracle 实现自增auto_increament

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
1. 在Oracle中完成自动增长的功能,则只能依靠序列完成,所有的自动增长操作,需要用户收工完成处理
1.创建生成流水号的数据维护表 create table SEQT ( name VARCHAR2(20) not null, val NUMBER(10) n
1.创建生成流水号的数据维护表 create table SEQT ( name VARCHAR2(20) not null, val NUMBER(10) n
1.创建生成流水号的数据维护表 create table SEQT ( name VARCHAR2(20) not null, val NUMBER(10) n
1.创建生成流水号的数据维护表 create table SEQT ( name VARCHAR2(20) not null, val NUMBER(10) n
1.创建生成流水号的数据维护表 create table SEQT ( name VARCHAR2(20) not null, val NUMBER(10) n
  ExtJs Grid分页时,默认情况下每页的序号都是从1起始的,这往往不符合我们的习惯。这里实现了序
环境:SQL Server 2008 问题:设置主键和把它设为自增。   环境:SQL Server 2008   问题:设置
由于在模板中,需要输出序号,但是从数据库中提取的话,保证不了序号的连续性。 在模板中我就使用fo
在分布式系统中大多数存在着如下的架构形式: 系统的被逻辑分为前台应用和数据库两个部分,前台应用
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号