mysql变更AUTO_INCREMENT值

数据库中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开始。

你可能感兴趣的:(mysql)