`

获取 Oracle、DB2、PostgreSQL的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_test
例如:values nextval for seq_test;

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


三、Sequence与indentity的区别与联系

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

分享到:
评论

相关推荐

    Oracle、DB2、PostgreSQL之Sequence总结

    在Oracle、DB2和PostgreSQL这三种数据库管理系统中,Sequence都是内置的特性,允许用户创建并管理这样的自动递增序列。然而,值得注意的是,并非所有数据库系统都支持Sequence,比如MySQL、SQL Server和Sybase就没有...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    db2 IBM DB2在企业级的应用最为广泛, 在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器。收费 大型企业 Access 微软 Access是一种桌面数据库,只适合数据量少的应用,在处理少量 数据和单机访问的数据库时...

    openjpa实体标识的生成策略

    如果数据库支持序列(如Oracle和PostgreSQL),可以使用`strategy=GenerationType.SEQUENCE`。这时,需要配合`@SequenceGenerator`注解来指定序列名称。`@SequenceGenerator`注解的属性包括: - `name`:必需的属性...

    Hibernate主键生成方式

    - **应用场景**:适用于支持 Sequence 的数据库环境,如 Oracle 或 PostgreSQL。Sequence 能够有效地生成连续的整数序列作为主键。 ##### 7. native - **定义**:由 Hibernate 根据底层数据库自行判断采用 ...

    Mycat常见问题和解决方案.docx

    Mycat是一种高性能、可伸缩、稳定的分布式关系数据库代理系统,支持多种数据库管理系统,包括MySQL、MongoDB、Oracle、SQL Server、Hive、DB2、PostgreSQL等。下面是Mycat的常见问题和解决方案: Mycat的功能和特性...

    Hibernate主键类型说明和配置手册.doc

    5. **sequence**: 使用数据库的序列生成主键,适用于DB2、PostgreSQL、Oracle、SAP DB、McKoi和Interbase。 6. **hilo**: 使用Hi-Lo算法,需要一个数据库表来存储生成的主键。不适用于JTA环境或自定义数据库连接。 ...

    常用数据库的自增字段创建方法汇总

    本文将详细介绍几种主流数据库系统中的自增字段创建方法,包括 DB2、Oracle、MySQL、PostgreSQL、SQL Server 和 Sybase。 #### DB2 DB2 支持通过 `GENERATED ALWAYS AS IDENTITY` 属性来创建自增字段。这种方式...

    hibernate主键生成策略

    - **支持数据库**:适用于`DB2`、`PostgreSQL`、`Oracle`、`SAPDB`和`McKoi`等支持序列的数据库。对于`Interbase`数据库,则使用`generator`来实现类似功能。 - **应用场景**:适用于数据量大且对性能要求较高的情况...

    03_Hibernate&JPA .pptx

    - `GenerationType.SEQUENCE`使用序列(Oracle、PostgreSQL等)。 - `GenerationType.TABLE`通过自定义表生成,跨数据库平台兼容。 - `GenerationType.AUTO`由JPA引擎根据具体数据库选择合适的策略。 7. ...

    Java探索之Hibernate主键生成策略详细介绍

    这种策略需要数据库支持sequence,如Oracle、DB、SAP DB、PostgreSQL、McKoi等。MySQL这种不支持sequence的数据库则不行(可以使用identity)。 例子:<generator class="sequence"><param name="sequence">...

    hibernate各种主健详解

    - 适用于支持序列特性的数据库,如Oracle、DB2、PostgreSQL、SAP DB等。 - 由于依赖数据库特性,不同数据库之间的移植性较差。 - 在Oracle等支持序列的数据库中表现良好。 **应用场景:** - 支持序列特性的数据库...

    hibernate中的generator的生成方式hibernate中的generator的生成方式

    - **适用数据库**:Oracle、PostgreSQL等支持序列的数据库。 - **配置示例**: ```xml <generator class="sequence"> <param name="sequence">person_seq ``` #### 5. Native - **定义**:根据当前使用...

    MySQL分表自增ID问题的解决方法

    在Oracle、PostgreSQL和DB2等其他数据库系统中,有序列(sequence)功能来解决这个问题,但MySQL自身并没有内置序列对象。 针对MySQL的这种情况,我们可以采用以下两种策略来解决分表自增ID的问题: 1. **通过MySQL...

    hibernate的映射文件配置

    6. **sequence**:使用数据库Sequence机制,适合Oracle等数据库。 7. **native**:由Hibernate自动选择identity、hilo或sequence之一。 8. **uuid.hex**:生成16进制的UUID作为主键。 9. **uuid.string**:生成未...

    hbm.xml说明

    - **sequence**: 使用序列生成主键,适用于 Oracle, PostgreSQL 等数据库。 - **native**: 根据不同的数据库自动选择合适的策略。 - **uuid.hex**: 生成基于 UUID 的十六进制字符串作为主键。 - **uuid.string**: ...

    MybatisPlus使用手册.docx

    MybatisPlus 支持多种数据库,包括 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、PostgreSQL、SQLServer 等。 5. 内置插件 MybatisPlus 内置了多种插件,包括: * 内置分页插件:基于 MyBatis 物理分页,...

    mybatis-plus快速入门手册,包含源代码样例Demo以及数据库源文件,带你快速上手CRUD,项目中不求人!

    分页插件兼容多种数据库,如 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、PostgreSQL、SQL Server 等。 11. **性能分析插件**: 可输出 SQL 语句及其执行时间,方便在开发和测试阶段找出性能瓶颈和慢查询。 ...

    java框架之hibernate

    - 适用于DB2、PostgreSQL、Oracle等数据库。 10. **Sequence-Identity**: - 特殊的序列生成策略,结合数据库序列和JDBC3的getGeneratedKeys。 - 目前仅支持面向JDK1.4的Oracle10g驱动。 11. **UUID**: - ...

    MyBatis-Plus 3.x 文档手册

    MyBatis-Plus广泛支持多种数据库,包括MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、PostgreSQL、SQL Server和达梦数据库等。 MyBatis-Plus的这些特性使得开发人员能够更加专注于业务逻辑,而不是繁琐的数据库...

Global site tag (gtag.js) - Google Analytics