在尝试从中删除一个用户后,我尝试创建一个功能来重建所有用户的用户ID。例如:
测试表:
id |的文本
1 | AAA
2 | BBB
3 | CCC
4 | DDD
6 | FFF
7 | GGG
8 | HHH
9 |三
10 | JJJ
删除记录:5 | EEE
我想为所有用户修复id并修复mysql的自动增量
固定表:
id |的文本
1 | AAA
2 | BBB
3 | CCC
4 | DDD
5 | FFF
6 | GGG
7 | HHH
8 |三
9 | JJJ
function rebuild_user_id($mysqli) {
$row_count = get_dbt_rows_count('test', $mysqli);
$result = $mysqli->query("SELECT id FROM test ORDER BY id ASC");
for ($i = 1; $i <= $row_count; $i++) {
//Fetch all rows in result and store them in an array $rows
$rows = array();
while($row = $result->fetch_row()) {
$rows[] = $row;
}
$currentid = $rows[$i];
$mysqli->query("UPDATE test SET id = $i WHERE id = $currentid");
}
// set fixed auto_increment
$ai_value = $row_count + 1;
$mysqli->query("ALTER TABLE `test` AUTO_INCREMENT=$ai_value");
}
我已经尝试了同样的结果 - 修复auto_increment有效但修复了所有用户的ID ...呃,有什么建议吗?
答案 0 :(得分:0)
eggyal是正确的,这似乎是不好的做法,但hek2mgl得到了正确的答案,这个问题应该标记为已回答:
这是相关的how-to-reindex-mysql-table希望这会有所帮助 - hek2mgl