我有一个数据库,必须在其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
命令。
答案 0 :(得分:0)
好的,我找到了。 AUTO_INCREMENT位于" information_schema.tables"数据库和我的用户有" USAGE"只有这个表的权限。随着" ALTER"特权授予它工作正常。 感谢。