MySQL:重置AUTO_INCREMENT

时间:2013-04-01 19:01:07

标签: mysql

我正在尝试根据当前其中的行数重置其中一个表中的自动增量值。这是我到目前为止的代码。

SET @numrows = 0;

SELECT COUNT(*) total, @numrows := COUNT(*) + 1 numrows FROM maj_user ;
ALTER TABLE `maj_user` AUTO_INCREMENT = @numrows ;

如果我在MySQL Workbench中执行它,这很有用。但是,我需要将其保存为SQL文件并将其作为数据库导入脚本的一部分执行。如果我这样做,我明白了:

ERROR 1064 (42000) at line 39: You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right syntax to
use near '@numrows' at line 1

第39行是ALTER TABLE语句。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以更改语法以跳过实际设置@numrows吗?我不确定问题是什么,但解决方法似乎是这样的:

ALTER TABLE `maj_user` AUTO_INCREMENT = (SELECT COUNT(*) + 1 from maj_user);