Sequence的介绍
来源:互联网 发布:软件怎么彻底删除 编辑:程序博客网 时间:2024/05/16 02:31
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 仅仅是指定在表中某一列上,作用范围就是这个表。
- ORACLE SEQUENCE的介绍
- ORACLE SEQUENCE的介绍
- Sequence的介绍
- ORACLE SEQUENCE的简单介绍
- ORACLE SEQUENCE的简单介绍
- ORACLE SEQUENCE的简单介绍
- oracle sequence的简单介绍
- ORACLE SEQUENCE的简单介绍
- ORACLE SEQUENCE的简单介绍
- ORACLE SEQUENCE的简单介绍
- ORACLE SEQUENCE的简单介绍
- ORACLE SEQUENCE的简单介绍
- ORACLE SEQUENCE的简单介绍
- ORACLE SEQUENCE的简单介绍
- ORACLE SEQUENCE的简单介绍
- ORACLE SEQUENCE的简单介绍
- ORACLE SEQUENCE的简单介绍
- ORACLE SEQUENCE的简单介绍
- Java笔记(循环)
- [基本实验] 中国菜刀与一句话木马
- 安装php5.2.3应注意的地方
- JavaScript 秘密花园 (很棒的Blog)
- 为查询出的区域添加父区域、级别、是否叶结点
- Sequence的介绍
- Linux进程间通信——使用信号
- JS调用Excel的ActiveX控件的workbook.saveas函数时报错
- C# json提取多层嵌套到数组
- jQuery UI
- Android中adb push和adb install的使用区别
- windows下使用VS2010编译jpeglib
- ios开发实用链接
- Spring 注释 @Autowired 和@Resource 的区别