`
哇哈哈852
  • 浏览: 96144 次
文章分类
社区版块
存档分类
最新评论

Oracle之序列(主键自增)

阅读更多


1.
在Oracle中完成自动增长的功能,则只能依靠序列完成,所有的自动增长操作,需要用户收工完成处理。
序列的创建格式:
CREATE SEQUENCE sequence 
[INCREMENT BY n][STARTWITH n] 
[{MAXVALUE n | NOMAXVALUE}] 
[{MINVALUE n | NOMINVALUE}] 
[{CYCLE|NOCYCLE}] 
[{CACHE n|NOCACHE}] ; 
范例:创建一个myseq的序列,验证自动增长的操作。
CREATE SEQUENCE myseq ; 
序列创建完成之后,所有的自动增长应该由用户自己处理,所以在序列中提供了一下的两种操作:
nextVal : 学的序列的下一个内容
currVal : 去的序列的当前内容
范例:建立一张以验证序列的操作
CREATE TABLE testseq( 
next NUMBER , 
curr NUMBER 
) ; 
现在向表中添加数据,添加数据的时候需要手工使用序列
范例:使用序列
INSERT INTO testseq(next,curr) VALUES (myseq.nextval,myseq.currval) ; 
该操作执行5次。
查询testseq表:
SELECT * FROM testseq ; 
可以发现,newVal的内容是种在进行自动增长的操作,而currVal使用取出当前操作的序列结果。
也就是说,现在这种序列,每次增长的幅度是1,也可以修改序列的增长幅度。
每次的增长幅度 INCREMENT BY 长度
范例:
删除序列:
DROP SEQUENCE myseq ; 
重新创建序列:
CREATE SEQUENCE myseq INCREMENT BY 2; 
再创建表,进行test:
DROP TABLE testseq ; 
CREATE TABLE testseq( 
next NUMBER , 
curr NUMBER 
) ; 
插入5个数据,测试:
INSERT INTO testseq(next,curr) VALUES (myseq.nextval,myseq.currval) ; 
默认情况下,序列从1开始,那么也可以使用 START WITH 指定其开始位置。
DROP SEQUENCE myseq ; 
CREATE SEQUENCE myseq INCREMENT BY 2 STARTWITH 10 ;--从10开始 
创建一个序列,让其取固定值在1、3、5、7、9,循环序列。
DROP SEQUENCE myseq ; 
CREATE SEQUENCE myseq MAXVALUE 10 INCREMENT BY 2 START WITH 1 
CACHE 2 CYCLE; 
  • 大小: 27.8 KB
分享到:
评论

相关推荐

    oracle主键自增

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

    Oracle中主键自增实例

    Oracle序列是一种数据库对象,可以生成唯一的整数序列。创建序列后,可以在插入新记录时引用它来获取下一个可用的序列值。例如,创建一个名为`SEQ_PRIMARY_KEY`的序列: ```sql CREATE SEQUENCE SEQ_PRIMARY_KEY ...

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

    ### 创建Oracle数据库中表的...总之,通过使用序列和触发器,Oracle数据库可以轻松地实现主键自增功能,这对于需要唯一标识符的应用程序来说非常重要。这种方式不仅简化了开发流程,还提高了数据处理的效率和准确性。

    Oracle主键自增的办法

    以下是一个在 Oracle 中创建自增主键的详细步骤: 1. **创建序列**: Oracle 中的序列是一种可以生成唯一整数序列的对象。在这个例子中,我们可以创建一个名为 `seq.TableName` 的序列,其中 `TableName` 是表的...

    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创建主键自增表(sql语句实现)及触发器应用

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

    ORACLE自增主键设置方法

    除了使用序列实现自增主键外,Oracle还提供了其他几种主键生成策略,比如使用`SYS_GUID()`函数生成全局唯一标识符(GUID)作为主键。这种方法适用于需要全局唯一性的场景,但可能不适合对性能要求较高的应用,因为`...

    oracle 主键自增 sequence

    ### Oracle 主键自增 Sequence 的实现与应用 #### 一、Sequence 的概念及用途 在 Oracle 数据库中,`Sequence` 是一种用于生成一系列唯一数值的对象。这些数值可以按照特定的规则递增或递减,并且可以设定是否循环...

    oracle 主键自增相关命令

    在Oracle数据库中,主键自增是一种常见的设计方式,它使得每条新插入的数据自动获得一个唯一的标识符。以下是对创建和使用Oracle主键自增的相关知识点的详细说明: 1. **创建表并定义主键**: 当我们创建表时,...

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

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

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

    - 观察主键列是否按预期自增。 示例SQL脚本: ```sql CREATE TABLE G_EC_LotteryCategory ( lcId NUMBER(3) NOT NULL, lcName NVARCHAR2(30), lcAbbr NVARCHAR2(20), CONSTRAINT PK_G_EC_LOTTERYCATEGORY ...

    oracle 创建id主键序列 脚本

    总结来说,Oracle序列是实现主键自增的有效工具,通过创建和管理序列,可以确保数据的唯一性和有序性。在实际应用中,应根据具体需求调整序列的参数,如步长、缓存大小等,以优化性能和满足业务逻辑。

    oracle中设置自增主键参考

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

    Oracle建立自增主键

    ### Oracle建立自增主键 在Oracle数据库管理中,创建自增主键是一种常见的需求,尤其是在需要自动为表中的每一行记录分配一个唯一标识符的情况下。本文将详细介绍如何利用Oracle提供的`SEQUENCE`和`TRIGGER`来实现...

    MyBatis Oracle 自增序列的实现方法

    1. 创建Oracle序列对象。 2. 在MyBatis映射文件中使用`<selectKey>`标签在插入前获取序列值。 3. 将获取的序列值插入到对应的主键字段。 4. 确保`parameterType`中的对象有对应的属性来接收自增序列的值。 通过以上...

    oracle通过触发器,实现序列自增

    #### 一、理解Oracle序列 在开始之前,首先需要了解Oracle中的序列。序列是一个数据库对象,它能够生成连续的整数序列。序列主要用于当需要为表中的某列自动生成唯一值时。例如,在插入新记录时,可以使用序列生成...

    Oracle数据库创建表tuser设置主键自动增长

    本篇详细介绍了如何在Oracle数据库中创建一张包含自动增长主键的表`tuser`,并通过创建序列和触发器实现了这一功能。这种做法不仅能够简化主键管理的工作量,还能够确保数据的一致性和完整性。对于实际应用来说,这...

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

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

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

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

Global site tag (gtag.js) - Google Analytics