GBase 8a
其他
文章

数据库自增列(AUTO_INCREMENT)使用说明

发表于2026-06-02 16:20:5438次浏览25个评论

自增列是指定 auto_increment 属性的列,列值单调递增(不保证连续),主要用于唯一标识表中的每一条记录。

一、支持的数据类型

自增列仅支持以下整数类型:

· tinyint
· smallint
· int
· bigint

注意:字段属性必须为 NOT NULL

二、创建自增列表

基本语法

CREATE TABLE table_name (
 id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
 name VARCHAR(100)
) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace';

创建示例

随机分布表:
CREATE TABLE t1(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100));
查询表结构:
SHOW CREATE TABLE t1;
CREATE TABLE "t1" (
 "id" int(11) NOT NULL AUTO_INCREMENT,
 "name" varchar(100) DEFAULT NULL,
 PRIMARY KEY ("id")
) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace';
复制表:
CREATE TABLE t2(a INT NOT NULL PRIMARY KEY AUTO_INCREMENT, b VARCHAR(100)) REPLICATED;
三、自增列的限制与注意事项

限制项 说明 
唯一性 每个表只能有一个自增列 
步长 集群不允许指定自增起始值和步长,由系统自动维护 
连续性 值单调递增,但不保证连续 
哈希分布列 自增列不能作为哈希分布列 
分区条件列 自增列不能作为分区条件列 
并发写入 自增列的表不支持INSERT并发,会升级为独占写锁,避免重复值 

重要提示:如果要将自增列用于哈希分布表,建议使用其他列作为分布列,例如使用业务字段进行分布。

评论

登录后才可以发表评论
GBase用户51829发表于 2个月前
GBase 8a 支持使用 AUTO_INCREMENT 创建自增列,自增列必须是 INT 类型且定义为主键 PRIMARY KEY。创建表时默认是随机分布表,也可以指定 REPLICATED 创建复制表,存储引擎默认使用 EXPRESS,表空间默认使用 sys_tablespace。可通过 SHOW CREATE TABLE 查看表结构及自增属性。
GBase用户51829发表于 2个月前
GBase 8a 自增列必须满足:INT 类型 + NOT NULL + PRIMARY KEY + AUTO_INCREMENT。支持随机分布表和复制表两种分布方式,使用 SHOW CREATE TABLE 可查看自增列定义,默认引擎为 EXPRESS,默认表空间为 sys_tablespace。
GBase用户51829发表于 2个月前
在 GBase 8a 里创建自增列很简单,只要把整型字段设为主键并加上 AUTO_INCREMENT 就行。既可以创建普通随机分布表,也能加 REPLICATED 关键字创建复制表,建好后用 SHOW CREATE TABLE 就能确认自增属性是否生效。
GBase用户50900发表于 2个月前
好文章,支持一下!
GBase用户51966发表于 2个月前
干货满满,感谢楼主分享。
一个老汉发表于 2个月前
总结得很到位,学习。
GBase用户51511发表于 2个月前
总结得很到位,学习。
GBase用户51510发表于 2个月前
感谢分享,非常有帮助。
塔山发表于 2个月前
不错的文章,受益匪浅。
佛洛伊得发表于 2个月前
不错的文章,受益匪浅。
GBase用户21143发表于 2个月前
11
GBase用户21143发表于 2个月前
很好
GBase用户21143发表于 2个月前
优秀
GBase用户21143发表于 2个月前
点赞!
GBase用户21143发表于 2个月前
很不错
用户头像
GBase用户28017发表于 2个月前
优秀
GBase用户47954发表于 2个月前
感谢作者的精彩分享!
GBase用户46650发表于 1个月前
总结得很到位,学习。

GBase用户46650发表于 1个月前
总结得很到位,学习1

GBase用户46650发表于 1个月前
总结得很到位,学习。2

GBase用户46650发表于 1个月前
总结得很到位,学习3

GBase用户46650发表于 1个月前
总结得很到位,学习。

4
GBase用户21182发表于 1个月前
讲得很细致,清楚了解了自增列用法和各项限制,日常建表能用得上。
shepherd发表于 1个月前
很详细,不错
gbase0001发表于 1个月前
谢谢分享,很实用