【发布时间】:2012-08-20 09:57:40
【问题描述】:
我定义了一个 7 位的自增 ID 字段(int(7) ZEROFILL),以便得到 0000001、0000002、0000003 等,足以让表包含多达 10 000 000 行。
一开始一切都很好。然后我注意到该字段会“跳过”整个范围。例如,它将直接从 0000100 变为 0000200。
当它直接到 9999999 时,事情变得非常复杂,这是 int(7) 允许的最后一个值,因为下一次它设置了“10000000”值,其中包含 8 个数字,而到目前为止它只使用了 0.005% int(7) 可用的值。
问题是我真的需要这个字段的 7 位格式。
有没有办法真正强制字段使用下一个可用值?
感谢您的帮助!
编辑:仅供参考,行定义是int(7) UNSIGNED ZEROFILL AUTO_INCREMENT
【问题讨论】:
-
你能显示你的表定义吗?
-
id 的增量是固定的还是变化的?
-
请注意,INT(7) 实际上不是 7 位字段。括号中的数字完全是另外一回事。
-
检查自动增量变量 SHOW VARIABLES LIKE 'auto_inc%';
标签: mysql auto-increment