`

实现Oracle数据库的自增主键

阅读更多

将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现)

----创建表
Create table t_user(
Id number(6),userid varchar2(20),loginpassword varchar2(20),isdisable number(6)
);

----创建序列
create sequence user_seq
increment by 1
start with 1
nomaxvalue
nominvalue
nocache

----创建触发器
create or replace trigger tr_user
before insert on t_user
for each row
begin
select user_seq.nextval into :new.id from dual;
end;

----测试
insert into t_user(userid,loginpassword, isdisable)
values('ffll','liudddyujj', 0);
insert into t_user(userid,loginpassword, isdisable)
values('dddd','zhang', 0)
select * from t_user;
就可以看出结果。

***********************************************************************
对sequence说明:
increment by :用于指定序列增量(默认值:1),如果指定的是正整数,则序列号自动递增,如果指定的是负数,则自动递减。
start with :用于指定序列生成器生成的第一个序列号,当序列号顺序递增时默认值为序列号的最小值 当序列号顺序递减时默认值为序列号的最大值。
Maxvalue:用于指定序列生成器可以生成的组大序列号(必须大于或等于start with,并且必须大于minvalue),默认为nomaxvalue。
Minvalue:用于指定序列生成器可以生成的最小序列号(必须小于或等于starr with,并且必须小于maxvalue),默认值为nominvalue。
Cycle:用于指定在达到序列的最大值或最小值之后是否继续生成序列号,默认为nocycle。
Cache:用于指定在内存中可以预分配的序列号个数(默认值:20)。
在sequence中应注意:
1、 第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。
2、 如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。


本文来自CSDN博客,转载:http://blog.csdn.net/tancaiyi/archive/2009/04/01/4040289.aspx

分享到:
评论

相关推荐

    ORACLE自增主键设置方法

    在Oracle数据库中,自增主键是一种常见的主键设计方式,它能够确保每条记录的唯一性,并且在插入新记录时自动递增,简化了数据管理流程。本文将详细介绍如何在Oracle中设置自增主键。 #### 一、创建序列(Sequence...

    Oracle建立自增主键

    Oracle数据库提供了两种主要的方式来实现自增主键:`SEQUENCE`和`TRIGGER`。 #### 二、使用SEQUENCE实现自增主键 `SEQUENCE`是Oracle提供的一种对象类型,它可以用来生成连续的整数序列。通过`SEQUENCE`,我们可以...

    Oracle数据库中创建自增主键的实例教程

    在设计数据库表的时候发现Oracle没有自增主键的设置,Google了解到Oracle本身并不支持自增主键,需要通过序列(Sequence)和触发器(Trigger)实现。 创建表Student Create Table Student( id number(12) primary ...

    创建oracle数据库中表的主键和自增

    在Oracle数据库中实现自增主键是一项常见但非常重要的功能。这不仅有助于确保数据的唯一性,还能简化开发过程中的某些环节,尤其是在需要自动增长的主键时。下面将详细介绍如何通过序列(Sequence)和触发器...

    oracle主键自增

    oracle 数据库主键自增脚本 --第一步,创建表 --第二步,创建自增序列 --第三步,创建触发器

    oracle中设置自增主键参考

    在Oracle数据库中,自增主键是一种非常实用且常见的设计模式,它能够确保表中的每一条记录都拥有一个唯一的标识符,这对于数据的管理和查询非常重要。本文将详细介绍如何在Oracle中实现自增主键的功能。 #### 创建...

    powerdesigner创建oracle_数据库表,设置表主键列为自动增长

    本篇文章将详细介绍如何利用PowerDesigner 12.5版本创建Oracle数据库表,并设置表的主键列为自动增长。 #### 二、准备工作 在开始之前,请确保已经安装了PowerDesigner 12.5,并且具备一定的Oracle数据库基础知识...

    oracle数据库主键自增并且返回主键值

    一、创建序列 1.1、直接在PLSQL中设置 1.2、命令创建 create sequence seq_users ##创建序列seq_users increment by 1 ## 步长,每次加1 start with 1 ##从1开始 minvalue 1 ##最小值 maxvalue 9999999 ##最大值 ...

    Oracle主键自增的办法

    当新行插入到表中时,触发器会自动将序列的下一个值赋给指定的自增字段,从而实现了类似其他数据库的自增主键功能。 通过这种方式,即使 Oracle 没有内置的自增字段,我们仍然可以利用序列和触发器来实现这一需求...

    mybatis自增主键文档

    在MyBatis中,处理自增主键是一个常见的需求,特别是在Oracle和MySQL这两个数据库中。Oracle通常使用Sequence来生成自增主键,而MySQL则直接通过表定义的自增属性来处理。以下将详细讲解这两种数据库在MyBatis中的...

    Oracle中主键自增实例

    在Oracle数据库系统中,主键(Primary Key)是表中的一个或一组字段,它们的值在整张表中是唯一的,用于唯一标识每一条记录。然而,与MySQL等其他数据库不同,Oracle并没有内置的自动递增(auto-increment)功能来...

    oracle 主键自增相关命令

    在Oracle数据库中,主键自增是一种常见的设计方式,它使得每条新插入的数据自动获得一个唯一的标识符。...理解并熟练掌握这些知识点,可以帮助初学者在Oracle数据库中顺利地创建和管理具有自增主键的表。

    Oracle创建主键自增表(sql语句实现)及触发器应用

    在Oracle数据库中,创建主键自增表是一项常见的任务,这有助于确保每个新插入的记录都有一个唯一的标识符。下面将详细讲解如何通过SQL语句实现这一功能,并结合触发器的应用来自动增加主键。 首先,我们创建一个...

    Navicat Premium中Oracle创建主键自增的方法

    到此这篇关于Navicat Premium中Oracle创建主键自增的方法的文章就介绍到这了,更多相关Navicat Premium主键自增内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!

    oracle 主键自增 sequence

    ### Oracle 主键自增 Sequence 的实现与应用 #### 一、Sequence 的概念及...综上所述,`Sequence` 在 Oracle 数据库中是一种非常有用的工具,能够帮助开发者轻松地实现主键自增等功能,提高数据库操作的效率和便利性。

    如何实现Oracle自增,序列,触发器都有

    在Oracle数据库中实现主键自增功能可以通过创建序列(sequence)与触发器(trigger)相结合的方式实现。这种方式不仅能够确保数据表中的主键唯一性,还能自动递增,极大地简化了开发人员的工作。 #### 创建Sequence...

    Oracle数据库中主键的智能生成.pdf

    由于Oracle数据库不直接支持类似Access或SQL Server中的自增字段,因此在Oracle中生成主键通常需要利用序列(Sequences)和触发器(Triggers)等机制来实现智能生成。 序列是Oracle提供的一种数据库对象,它可以...

    Oracle数据库表序列ID自增生成器

    总结来说,Oracle数据库表序列ID自增生成器结合了序列和触发器的概念,实现了主键ID的自动增长。这种机制在处理大量数据和并发操作时,能确保数据的完整性和一致性。了解并熟练运用这些知识点,对于进行高效的Oracle...

    JPA主键策略(针对数据库自增字段重置后无效检查项)

    GenerationType.IDENTITY 是一种常用的主键策略,它使用数据库的自增字段来生成主键。在使用这个策略时,JPA会将主键的生成工作交由数据库完成,hibernate 不会介入。这意味着,数据库将负责生成主键,而不是...

Global site tag (gtag.js) - Google Analytics