---
title: OceanBase 数据库自增列特性介绍 -OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OceanBase 数据库自增列特性介绍 相关的常见问题和使用技巧，帮助您快速解决OceanBase 数据库自增列特性介绍 的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# OceanBase 数据库自增列特性介绍

更新时间：2023-11-14 03:16

适用版本： V2.1.x、V2.2.x、V3.1.x、V3.2.x 内容类型：TechNote  

本文主要介绍 OceanBase 数据库自增列的特性。

在 OceanBase 数据库中，自增列的特性如下：

- 自增列不保证连续性，以下操作会导致自增列值出现跳跃：

     - 事务失败
     - 切换主副本
     - 宕机重启
     - 自增 cache 失效

      #### 说明

      向自增列插入比当前值更大的值，会导致缓存失效。例如，当前自增列上缓存的最大值为 100，如果手动向该列插入 200，则该列的下一个值会从 201 开始，出现跳跃。
 - 自增列在一个分区内具有单调性，而同一个表的不同分区之间不能保证单调性。
 - OceanBase 数据库是分布式数据库，会预分配和字段类型关联的序列号。

     - 对于 OceanBase 数据库 V2.0 之前的版本，bigint 类型预分配数量为1 亿；对于 OceanBase 数据库 V2.0 及以后的版本，bigint 类型预分配数量为 100 万。
     - int 类型预分配数量为100 万。
     - smallint、tinyint 预分配数量小于 100 万，但这两个类型使用很少。

      例如，自增列的预分配数量为 100 万，当这 100 万耗尽后，会重新取下一段缓存，依旧是取 100 万条，但是起点不一定是 1000001。对于分区表，OceanBase 数据库的分布式架构会使得自增序列散列在不同的物理机上，并且会有多个进程来获取。
 - 与 MySQL 数据库相同，可以控制自增列步长与初值。相关参数有：

     - `auto_increment_increment`：用于设置自增步长。
     - `auto_increment_offset`：用于确定自增列值的起点。

      更多配置项的说明信息请参见 《OceanBase 数据库参考指南（MySQL 模式）》中的系统配置项章节。
 - 不推荐显式指定自增值的插入。

上一篇

[OceanBase 数据库中如何访问隐藏自增列的值](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207715)

下一篇

[集群合并中删除列遇到 ERROR 4179 报错](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207748) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
