如何重置字段的AUTO_INCREMENT?
我希望它再次从1开始计数。
如何重置字段的AUTO_INCREMENT?
我希望它再次从1开始计数。
当前回答
您需要遵循Miles M评论中的建议,这里有一些PHP代码可以修复MySQL中的范围。此外,您还需要打开my.ini文件(MySQL),并将max_execution_time=60更改为max_exece_time=6000;对于大型数据库。
不要使用“ALTER TABLE tablename AUTO_INCREMENT=1”。它将删除数据库中的所有内容。
$con = mysqli_connect($dbhost, $dbuser, $dbpass, $database);
$res = mysqli_query($con, "select * FROM data WHERE id LIKE id ORDER BY id ASC");
$count = 0;
while ($row = mysqli_fetch_array($res)){
$count++;
mysqli_query($con, "UPDATE data SET id='".$count."' WHERE id='".$row['id']."'");
}
echo 'Done reseting id';
mysqli_close($con);
其他回答
您需要遵循Miles M评论中的建议,这里有一些PHP代码可以修复MySQL中的范围。此外,您还需要打开my.ini文件(MySQL),并将max_execution_time=60更改为max_exece_time=6000;对于大型数据库。
不要使用“ALTER TABLE tablename AUTO_INCREMENT=1”。它将删除数据库中的所有内容。
$con = mysqli_connect($dbhost, $dbuser, $dbpass, $database);
$res = mysqli_query($con, "select * FROM data WHERE id LIKE id ORDER BY id ASC");
$count = 0;
while ($row = mysqli_fetch_array($res)){
$count++;
mysqli_query($con, "UPDATE data SET id='".$count."' WHERE id='".$row['id']."'");
}
echo 'Done reseting id';
mysqli_close($con);
尝试运行此查询:
ALTER TABLE tablename AUTO_INCREMENT = value;
或尝试此查询以重置自动增量
ALTER TABLE `tablename` CHANGE `id` `id` INT(10) UNSIGNED NOT NULL;
并设置自动增量,然后运行以下查询:
ALTER TABLE `tablename` CHANGE `id` `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;
SET @num := 0;
UPDATE your_table SET id = @num := (@num+1);
ALTER TABLE your_table AUTO_INCREMENT =1;
从MySQL 5.6开始,由于在线DDL(注意算法=就地),以下方法的工作速度更快:
alter table tablename auto_increment=1,algorithm=就地;
SET @num := 0;
UPDATE your_table SET id = @num := (@num+1);
ALTER TABLE your_table AUTO_INCREMENT =1;