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仅仅是指定在表中某一列上,作用范围就是这个表。
转自:红联Linux
分享到:
相关推荐
Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何...比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。
db2,mysql,berby,oracle,postgresql,sqlserver,sybase数据库驱动jar包
Oracle至PostgreSQL数据库迁移方案.pptx
详细描述了DB2与GreenPlum/PostgreSQL在各方面的差异,主要用于DB2数据库向GreenPlum/PostgreSQL数据库的迁移。
postgresql 兼容 oracle 函数, postgresql 兼容 oracle 函数,postgresql 兼容 oracle 函数, postgresql 兼容 oracle 函数
Oracle向PostgreSQL移植实例
一个利用正则表达式分析出DB2、Greenplum、MySQL、Oracle、PostgreSQL和Te-HSP
Mysql、Oracle、PostgreSQL、Sqlserver等数据库操作工具Navicat_Premium_15.0.8.zip mac版本
Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL、SQLite、Oracle 及 PostgreSQL 资料库,让管理不同类型的资料库更加的方便。
oracle移植到postgreSQL
PostgreSQL和Oracle区别,内容很详细哦!!!
个人完整的源码安装步骤,希望对你有用。亲测可用。Centos6.2下,以oracle_fdw驱动连接oracle数据实现读写操作
MySQL、PostgreSQL、Oracle比较; 数据库基础知识.ppt
用于MySQL、Oracle和PostgreSQL数据库开发、管理和管理的必备SQL Server 工具和工具
MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和/或 MongoDB
DB2-PostgreSQL
Oracle至PostgreSQL案例分享.zip
PostgreSQL to DB2 Porting Guide
介绍mysql,oracle,sqlserver2000,postgresql的连接方法,这些都是我的心得
python操作链接Oracle、PostgreSQL,MySql数据库增删改查代码,通过PooledDB实现池链接,实际运维中积累