在php中重置表的AUTO_INCREMENT

时间:2016-12-18 06:01:59

标签: php mysql increment

我有一个数据库,必须在其id列中维护严格的主键数字序列。即1,2,3,4,5等

现在当我删除一行时,我需要使用:

进行重新计数和增量重置
SET @count = 0; 
UPDATE `Main` 
SET `id` = @count:= @count + 1; 
ALTER TABLE Main 
AUTO_INCREMENT =1;

这在输入MySQL命令行时工作正常,正是我想要的,但我需要从PHP脚本命令执行它。我用:

$sql="SET @count = 0"; 
$result=$database->query($sql);
$sql="UPDATE Main SET id = @count:= @count + 1"; 
$result=$database->query($sql);
$sql="ALTER TABLE Main AUTO_INCREMENT =1"; 
$result=$database->query($sql);

现在前两个重新计数行工作正常,但AUTO_INCREMENT行不会重置自动增量计数器。再次"ALTER TABLE Main AUTO_INCREMENT =1;"可以直接从MySQL命令行工作,但不能通过PHP脚本执行。

注意:数据库使用mysqli_query命令。

1 个答案:

答案 0 :(得分:0)

好的,我找到了。 AUTO_INCREMENT位于" information_schema.tables"数据库和我的用户有" USAGE"只有这个表的权限。随着" ALTER"特权授予它工作正常。 感谢。