`
kirin
  • 浏览: 62377 次
社区版块
存档分类
最新评论

Sequence(转贴)

阅读更多

Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理

主键(因为不会重复),没有其他任何意义。

Sequence是数据库系统的特性,有的数据库有Sequence,有的没有。比如Oracle、

DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库没有

Sequence。

根据我个人理解,Sequence是数据中一个特殊存放等差数列的表,该表受数据库系

统控制,任何时候数据库系统都可以根据当前记录数大小加上步长来获取到该表下

一条记录应该是多少,这个表没有实际意义,常常用来做主键用,非常不错,呵呵

,不过很郁闷的各个数据库厂商尿不到一个壶里--各有各的一套对Sequence的定义

和操作。在此我对常见三种数据库的Sequence的定义和操作做一个对比和总结,以

便日后查看。

一、定义Sequence

定义一个seq_test,最小值为10000,最大值为99999999999999999,从20000开始

,增量的步长为1,缓存为20的循环排序Sequence。

Oracle的定义方法:
create sequence seq_test
minvalue 10000
maxvalue 99999999999999999
start with 20000
increment by 1
cache 20
cycle
order;

DB2的写法:
create sequence seq_test
as bigint
start with 20000
increment by 1
minvalue 10000
maxvalue 99999999999999999
cycle
cache 20
order;

PostgreSQL的写法:
create sequence seq_test
increment by 1
minvalue 10000
maxvalue 99999999999999999
start 20000
cache 20
cycle;

二、Oracle、DB2、PostgreSQL数据库Sequence值的引用参数为:currval、

nextval,分别表示当前值和下一个值。下面分别从三个数据库的Sequence中获取

nextval的值。

Oracle中:seq_test.nextval
例如:select seq_test.nextval from dual;

DB2中:nextval for SEQ_TOPICMS
例如:values nextval for seq_test;

PostgreSQL中:nextval(seq_test)
例如:select nextval(seq_test);

三、Sequence与indentity的区别与联系

Sequence与indentity的基本作用都差不多。都可以生成自增数字序列。
Sequence是数据库系统中的一个对象,可以在整个数据库中使用,和表没有任何关

系;indentity仅仅是指定在表中某一列上,作用范围就是这个表。

分享到:
评论

相关推荐

    sequence-diagram.zip

    《序列图绘制工具sequence-diagram-js的深度解析与应用》 序列图,作为一种重要的系统建模工具,广泛应用于软件设计和开发中,它清晰地展示了系统内各对象间交互的顺序。sequence-diagram-js是一个基于JavaScript的...

    NumberSequence

    在IT行业中,"Number Sequence"通常指的是在特定系统或应用中用于生成自动递增或递减的数字序列。这些序列可以用于唯一标识记录、订单号、发票号等,确保数据的唯一性和可追踪性。在Microsoft Dynamics AX(现称为...

    sequence等同于序列号

    ### Oracle数据库中的Sequence机制详解 #### 一、概述 在Oracle数据库中,`sequence`机制是一种自动生成唯一数值序列的方法,常用于为主键字段提供连续的整数值。它类似于其他数据库系统中的自动增长字段,但在...

    Oracle sequence 重置(失效恢复)

    ### Oracle Sequence 重置(失效恢复) 在进行Oracle数据库移植或维护时,可能会遇到Sequence失效的问题。这种情况通常发生在数据迁移后,原有的Sequence不再与表中的最大值相匹配,导致新记录插入时出现ID冲突或者...

    Activiti 学习笔记七:连线(SequenceFlow)

    在Activiti中,连线(SequenceFlow)是流程图中的重要元素,用于定义活动之间的转移路径。本篇学习笔记将深入探讨SequenceFlow的概念、作用以及如何在流程设计中使用。 一、SequenceFlow简介 SequenceFlow 是 ...

    SequenceDiagram-3.0.5.zip

    SequenceDiagram-3.0.5.zip 是一个包含 Sequence Diagram 相关工具或资源的压缩包文件,主要用于绘制序列图,这是UML(统一建模语言)中的一种图表,用于描述对象之间的交互和消息传递顺序。在软件开发过程中,序列...

    sequence-to-sequence learning

    机器学习之sequence to sequence learning。(Sequence Generation-----Hung-yi Lee 李宏毅.ppt)

    Sequence简单介绍.pdf

    ### Sequence简单介绍 #### 序列(Sequence)概念解析及应用 序列(Sequence)是一种用于生成一系列数值的数据对象,常用于数据库系统中为主键提供自动递增的功能。本篇文章主要聚焦于Oracle数据库与SQL Server...

    SequenceDiagram.zip

    **序号图(Sequence Diagram)**是统一建模语言(UML)中的一种图形表示,用于描述系统中对象之间的交互顺序。它清晰地展现了不同对象如何通过消息传递进行通信,以及这些消息的时间顺序。在软件设计和分析阶段,...

    oracle中sequence介绍及应用

    ### Oracle中的Sequence介绍及应用 #### 一、Sequence概述 在Oracle数据库中,Sequence是一种用于自动产生数值序列的对象。它可以生成连续的整数或者非连续的整数序列,并且可以根据需求进行递增或递减。Sequence...

    Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍

    Oracle 创建自增字段方法-ORACLE SEQUENCE 的简单介绍 Oracle SEQUENCE 是一种特殊的数据库对象,用于生成一系列唯一的数值,通常用于主键或其他需要唯一标识的字段。下面将详细介绍 Oracle 创建自增字段方法-...

    oracle中的sequence实现主键增长

    Oracle中的Sequence是数据库管理系统提供的一种机制,用于生成序列化的整数,通常用于主键或唯一标识符,确保数据的唯一性和有序性。在Oracle中,Sequence不同于其他数据库系统的自增字段,例如SQL Server中的`...

    invalid multibyte character sequence 870告警1

    Invalid Multibyte Character Sequence 警告解析 在编程中,特别是在嵌入式系统开发中,我们经常会遇到Invalid Multibyte Character Sequence 警告。这个警告通常来自于编译器,告知我们存在非法的多字节字符序列。...

    Sequence to Sequence Learning with Neural Networksv论文

    《Sequence to Sequence Learning with Neural Networks》是一篇由Ilya Sutskever, Oriol Vinyals和Quoc V. Le共同撰写的论文,三位作者都来自Google公司。这篇论文在自然语言处理领域有着重要的影响,特别是在序列...

    Informatica中Sequence Generator的两个有用的选项

    Informatica 中 Sequence Generator 的两个有用的选项 Informatica 是一个功能强大且常用的数据集成工具,在数据集成过程中,Sequence Generator 是一个非常重要的组件,用于生成唯一的序列号,作为表的主键或其他...

    Agreement on Target-Bidirectional LSTMs for Sequence-to-Sequence Learning

    memory networks, are extremely appealing for sequence-tosequence learning tasks. Despite their great success, they typically suffer from a fundamental shortcoming: they are prone to generate ...

    oracle 存储过程使用 sequence

    在Oracle中,Sequence则是一种自增序列号生成器,通常用于主键或者唯一标识的生成。在本话题中,我们将深入探讨如何在存储过程中使用Sequence。 首先,理解Sequence的基本概念。Sequence在Oracle中是一个预定义的...

Global site tag (gtag.js) - Google Analytics