2

SQLite Managerの[構造]ページで[列の編集]コマンドを使用してテーブルの列定義(主キー列ではない)を修正すると、sqlite3はそのテーブル名をsqlite_sequenceテーブルから削除したようです。手動で追加し直そうとしましたが、失われたテーブルに追加してもseq番号が更新されないことがわかりました。

失われたテーブル名を元に戻す方法を知っている人はいますか?

4

1 に答える 1

6

sqlite_sequenceのドキュメントには次のように書かれています。

AUTOINCREMENTテーブルのsqlite_sequence.seq値が手動で整数以外に設定され、その後AUTOINCREMENTテーブルを挿入または更新しようとした場合、動作は未定義です。

でも:

AUTOINCREMENTテーブルが更新されたときにAUTOINCREMENTテーブルのsqlite_sequence行が存在しない場合は、新しいsqlite_sequence行が作成されます。

したがって、sqlite_sequenceに「fake」エントリを追加しないでください。ただし、存在する場合は変更できます。

于 2012-09-19T13:27:16.613 に答える