MySQL连接间是否保留自动分配的唯一ID?生产自增ID延续疑问
这是完全正常的行为!
嘿,别担心,你遇到的这个情况其实完全符合MySQL的设定,原因就藏在你复制的CREATE TABLE语句里:
你看,创建表的最后一行有个AUTO_INCREMENT=192的参数——这个参数明确告诉MySQL,log_id这个自增列的下一个要分配的起始值是192。不管你是在测试环境还是生产环境执行这个创建语句,只要带着这个参数,新表的自增计数器就会从192开始,所以生产环境插入第一条记录时,自然就会用192作为log_id,后续依次递增。
额外补充几点:
- 这个自增值是存储在表的元数据中的,和数据库连接没有关系——不同连接插入数据时,都会沿用当前表的自增计数器值,这也是MySQL保证自增ID唯一性的机制之一。
- 如果希望生产环境的表从1开始分配自增ID,你有两个选择:
- 创建表的时候去掉
AUTO_INCREMENT=192这个参数,默认就会从1开始; - 已经创建好表的话,可以执行这条SQL重置自增起始值:
ALTER TABLE audit_logs AUTO_INCREMENT=1;
- 创建表的时候去掉
内容的提问来源于stack exchange,提问作者Siphephelo Bonga Gcabashe
相关产品推荐
相关产品推荐

