我尝试创建一个函数,在从所有用户中删除一个用户id后,为他们重建用户id。例如:
测试表:
id|text
1|aaa
2|bbb
3|ccc
4|ddd
6|fff
7|ggg
8|hhh
9|iii
10|jjj
删除记录: 5|eee
我想修复所有用户的id,并修复mysql的自动增量
固定表:
id|text
1|aaa
2|bbb
3|ccc
4|ddd
5|fff
6|ggg
7|hhh
8|iii
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");
}
我尝试过任何时候,结果都是一样的——修复自动增量有效,但修复所有用户的id。。。嗯,有什么建议吗?
eggyal是正确的,这似乎是不好的做法,但hek2mgl得到了正确的答案,这个问题应该被标记为已回答:
这是相关的how-to-reindex-mysql表希望这有助于-hek2mgl