1

SQLite Databate に 2 つの列があるとします。最初の列は自動インクリメント ID で、2 番目の列は文字列です。今すぐ言う

1 ランダム 2 ジェリービーン 3 イムタイレッド

エントリ 2 を削除すると、次のようになります。

1 ランダム 3 ImTired

私が欲しいのは、エントリ2を削除すると、それが次のようになるようにする方法です

1 ランダム 2 ImTired

エントリを更新して、すべてを1つ下に移動し、最後のエントリを削除することを考えましたが、機能したとしても(私の場合、すべてのエントリを削除しましたが、何でも...)、 1 ランダム 2 ImTired

次回新しいエントリを作成するときは、エントリ 4 になります。これは私のアプリには必要ないと思いますが、深刻なバグです。

4

1 に答える 1

3

DB の ID 列は、行を一意に識別するために使用される列または列のグループである主キーとして機能しています。行に主キーを設定したら、それを変更しないでください。そうしないと、DB の一貫性が失われる危険があります。たとえば、最初のテーブルの行を参照する別のテーブルを後で作成するとします。その参照は主キーを使用して行われ、後で変更すると、データは意味をなさなくなります。

テーブルの行数を反映するためだけに ID 列を変更し続けたい場合は、他の方法でその問題を解決できます。例えば。SQL は、テーブル内の行数を返す COUNT 演算子を提供します。

SELECT COUNT(*) FROM Table_name;
于 2012-11-12T10:39:47.903 に答える