You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL如何设置自增主键起始值为1且步长为3?

MySQL中设置AUTO_INCREMENT的起始值与递增步长

如果你需要让表的AUTO_INCREMENT主键从1开始、每次递增3,仅用ALTER TABLE tbl AUTO_INCREMENT = 1;只能指定起始值,无法改变默认的递增步长(默认是1),这和SQL Server里IDENTITY(1,3)的写法逻辑不同,下面是具体的解决方法:

临时生效的设置(仅当前会话)

如果只需要在当前数据库连接中生效,执行以下SQL命令:

SET @@auto_increment_increment = 3;

之后再设置起始值(如果表还没数据,或者需要重置起始值):

ALTER TABLE tbl AUTO_INCREMENT = 1;

这种设置在断开连接或重启MySQL后会恢复默认值。

永久生效的设置(全局所有表)

要让步长设置永久生效,需要修改MySQL的配置文件(Linux下通常是/etc/my.cnf,Windows下是my.ini),在[mysqld]段添加或修改:

auto_increment_increment = 3

保存配置后重启MySQL服务,再执行起始值设置:

ALTER TABLE tbl AUTO_INCREMENT = 1;

注意点

  • 全局的步长设置会影响所有使用AUTO_INCREMENT的表,若只想针对单个表调整,只能用临时会话的方式,但要注意会话结束后设置失效。
  • 如果表中已有数据,设置起始值时必须保证该值大于当前主键列的最大值,否则会出现主键冲突错误。

内容的提问来源于stack exchange,提问作者conner.mcvay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 05:20:10