例如,我有一个用户注册表:
CREATE TABLE IF NOT EXISTS test_user (
user_id int(10) unsigned NOT NULL AUTO_INCREMENT,
user_name varchar(50) NOT NULL,
PRIMARY KEY (user_id),
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud)
我希望user_id字段 ID 号是连续的,没有间隙。
失败的交易会占用一些ID号,有什么办法可以解决吗?
在您的情况下,自动增量列将始终为新用户提供最高的可用 ID。
然而,在单个步骤中重新使用失败事务中丢失的数字是不可能的,因为主键可能已在其他需要更新的表中使用。
没有与缺少数字相关的性能问题,并且这种情况很常见。如果失败的事务比完成的事务多,这只会是一个问题,但是我建议您为主键设置更大的大小。
| 归档时间: |
|
| 查看次数: |
4858 次 |
| 最近记录: |