一、定义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都是内置的特性,允许用户创建并管理这样的自动递增序列。然而,值得注意的是,并非所有数据库系统都支持Sequence,比如MySQL、SQL Server和Sybase就没有...
db2 IBM DB2在企业级的应用最为广泛, 在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器。收费 大型企业 Access 微软 Access是一种桌面数据库,只适合数据量少的应用,在处理少量 数据和单机访问的数据库时...
- **应用场景**:适用于支持 Sequence 的数据库环境,如 Oracle 或 PostgreSQL。Sequence 能够有效地生成连续的整数序列作为主键。 ##### 7. native - **定义**:由 Hibernate 根据底层数据库自行判断采用 ...
如果数据库支持序列(如Oracle和PostgreSQL),可以使用`strategy=GenerationType.SEQUENCE`。这时,需要配合`@SequenceGenerator`注解来指定序列名称。`@SequenceGenerator`注解的属性包括: - `name`:必需的属性...
Mycat是一种高性能、可伸缩、稳定的分布式关系数据库代理系统,支持多种数据库管理系统,包括MySQL、MongoDB、Oracle、SQL Server、Hive、DB2、PostgreSQL等。下面是Mycat的常见问题和解决方案: Mycat的功能和特性...
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` 属性来创建自增字段。这种方式...
- **支持数据库**:适用于`DB2`、`PostgreSQL`、`Oracle`、`SAPDB`和`McKoi`等支持序列的数据库。对于`Interbase`数据库,则使用`generator`来实现类似功能。 - **应用场景**:适用于数据量大且对性能要求较高的情况...
- `GenerationType.SEQUENCE`使用序列(Oracle、PostgreSQL等)。 - `GenerationType.TABLE`通过自定义表生成,跨数据库平台兼容。 - `GenerationType.AUTO`由JPA引擎根据具体数据库选择合适的策略。 7. ...
这种策略需要数据库支持sequence,如Oracle、DB、SAP DB、PostgreSQL、McKoi等。MySQL这种不支持sequence的数据库则不行(可以使用identity)。 例子:<generator class="sequence"><param name="sequence">...
- 适用于支持序列特性的数据库,如Oracle、DB2、PostgreSQL、SAP DB等。 - 由于依赖数据库特性,不同数据库之间的移植性较差。 - 在Oracle等支持序列的数据库中表现良好。 **应用场景:** - 支持序列特性的数据库...
- **适用数据库**:Oracle、PostgreSQL等支持序列的数据库。 - **配置示例**: ```xml <generator class="sequence"> <param name="sequence">person_seq ``` #### 5. Native - **定义**:根据当前使用...
在Oracle、PostgreSQL和DB2等其他数据库系统中,有序列(sequence)功能来解决这个问题,但MySQL自身并没有内置序列对象。 针对MySQL的这种情况,我们可以采用以下两种策略来解决分表自增ID的问题: 1. **通过MySQL...
6. **sequence**:使用数据库Sequence机制,适合Oracle等数据库。 7. **native**:由Hibernate自动选择identity、hilo或sequence之一。 8. **uuid.hex**:生成16进制的UUID作为主键。 9. **uuid.string**:生成未...
- **sequence**: 使用序列生成主键,适用于 Oracle, PostgreSQL 等数据库。 - **native**: 根据不同的数据库自动选择合适的策略。 - **uuid.hex**: 生成基于 UUID 的十六进制字符串作为主键。 - **uuid.string**: ...
MybatisPlus 支持多种数据库,包括 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、PostgreSQL、SQLServer 等。 5. 内置插件 MybatisPlus 内置了多种插件,包括: * 内置分页插件:基于 MyBatis 物理分页,...
分页插件兼容多种数据库,如 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、PostgreSQL、SQL Server 等。 11. **性能分析插件**: 可输出 SQL 语句及其执行时间,方便在开发和测试阶段找出性能瓶颈和慢查询。 ...
- 适用于DB2、PostgreSQL、Oracle等数据库。 10. **Sequence-Identity**: - 特殊的序列生成策略,结合数据库序列和JDBC3的getGeneratedKeys。 - 目前仅支持面向JDK1.4的Oracle10g驱动。 11. **UUID**: - ...
MyBatis-Plus广泛支持多种数据库,包括MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、PostgreSQL、SQL Server和达梦数据库等。 MyBatis-Plus的这些特性使得开发人员能够更加专注于业务逻辑,而不是繁琐的数据库...