0

テーブルから行を削除すると、rowID 番号が削除されます。これは、rowID が真にソートされていないことを意味します。この場合、新しい ID が並べ替えられて連続するように、rowID をリセットしたいと考えています。私は ALTER TABLE でこれをやろうとしました:

ALTER TABLE my_table DROP ID;
ALTER TABLE my_table AUTO_INCREMENT = 1;
ALTER TABLE my_table ADD ID int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

...しかし、これは機能しません。連続した数字を取得するにはどうすればよいですか?

4

1 に答える 1

0

多少お勧めできない場合は、技術的に可能です - SQLite で AUTOINCREMENT の開始値を設定します。しかし、自動インクリメントを間違って使用しているように思えます。行がテーブルから削除されるたびに、すべての行の id 値を変更する必要はありません。これにより、クエリで他のテーブルを結合することが非常に難しくなり、大きなテーブルでは非常に遅くなります。id が であり、とにかくでは1,2,4ない場合、なぜそれが重要なのですか? 同じ方法で1,2,3引き続き使用できます。ORDER BY

于 2012-09-01T12:43:07.670 に答える