是的,您可以使用该 ALTER TABLE t AUTO_INCREMENT = 42
语句。但是,您需要注意,这将导致重建整个表,至少对于 InnoDB 和某些 MySQL 版本而言是如此。 如果您有一个包含数百万行的现有数据集,则可能需要很长时间才能完成 .
根据我的经验,最好执行以下操作:
BEGIN WORK;
-- You may also need to add other mandatory columns and values
INSERT INTO t (id) VALUES (42);
ROLLBACK;
这样, 即使您回滚 事务,MySQL 也会保留自动增加的值,并且更改将立即应用。
您可以通过发出声明来验证这一点 SHOW CREATE TABLE t
。您应该看到:
> SHOW CREATE TABLE t \G
*************************** 1. row ***************************
Table: t
Create Table: CREATE TABLE `t` (
...
) ENGINE=InnoDB AUTO_INCREMENT=43 ...