数据库中id的值
mysql> select * from user_id_seq;
+----------+------+
| id | stub |
+----------+------+
| 10000025 | a |
+----------+------+
| user_id_seq | CREATE TABLE `user_id_seq` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`stub` varchar(3) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `stub` (`stub`)
) ENGINE=InnoDB AUTO_INCREMENT=10000026 DEFAULT CHARSET=utf8 |
使用mysql生成全局主键,测试的时候因为需要将AUTO_INCREMENT调整到了一千万,测试完成后希望该键值退回到一个比较小的初始值。
mysql> update user_id_seq set id = 100;
mysql> commit;
修改完后:
mysql> select * from user_id_seq;
+-----+------+
| id | stub |
+-----+------+
| 100 | a |
+-----+------+
但是:
mysql> show create table user_id_seq;
| user_id_seq | CREATE TABLE `user_id_seq` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`stub` varchar(3) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `stub` (`stub`)
) ENGINE=InnoDB AUTO_INCREMENT=10000026 DEFAULT CHARSET=utf8 |
AUTO_INCREMENT的值依旧是10000026
然后再执行:
mysql> alter table user_id_seq AUTO_INCREMENT = 100;
mysql> commit;
这时AUTO_INCREMENT的值才真正的变小,再次从该表中取得主键值将从101开始。