请教,AUTO_INCREMENT=100001, 但自增id还是从1开始

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】6.1.7
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
建表时指定了AUTO_INCREMENT=100001, 但自增id还是从1开始,请问这是什么原因?
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

这种应该算是bug吧,6.1.7的版本也不算低了,怎么回事!

AUTO_INCREMENT只是设置主键列具有自增长属性,并不能进行赋值。可以试一下@@auto_increment_offset隐含参数

可以赋值

只是不报错,并没有效果吧。

可以参考文档
https://docs.pingcap.com/zh/tidb/stable/auto-increment

有效果

1 个赞

你需要的是这个系统变量:

1 个赞

那每个表要设置不同的起始值怎么办?

那每个表要设置不同的起始值怎么办?

用不同的会话创建表,建表前set auto_increment_offset=你的起始值

5.x之前的版本从来没碰到过这种问题

我觉得不太可能

不知道你的5.x具体是什么版本?

5.0和5.3的两套环境都是好的

这不合理吧,如果开发给一批表给dba,建表的时候难道还一个个去看

不合理也目前也只能这么干,有方法总比没方法好。
什么场景需要每张表设置不同的起始值。

用set auto_increment_offset=初数,是过了吗

你把你测试过程贴一下,帮你分析下,我测试没问题

mysql> create table t2(id bigint primary key auto_increment,name varchar(10)) AUTO_INCREMENT=10;
Query OK, 0 rows affected (0.07 sec)

mysql> insert into t2 values(default,'AA');
Query OK, 1 row affected (0.01 sec)

mysql> select * from t2;
+----+------+
| id | name |
+----+------+
| 10 | AA   |
+----+------+
1 row in set (0.00 sec)

mysql> select tidb_version()\G
*************************** 1. row ***************************
tidb_version(): Release Version: v6.1.7
Edition: Community
Git Commit Hash: 613ecc5f731b2843e1d53a43915e2cd8da795936
Git Branch: heads/refs/tags/v6.1.7
UTC Build Time: 2023-07-04 11:55:22
GoVersion: go1.19.10
Race Enabled: false
TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
Check Table Before Drop: false
1 row in set (0.01 sec)

mysql> 

我后面新建测试表试了也没问题,但之前建的一批表都有问题

那到底还是有问题?从日志排查下?