自動インデックス作成はsqlite3.7.17で導入されました。この機能を備えたバージョンのsqliteは、AndroidLデベロッパープレビューにのみ含まれていました。これが、Lollipopでのみメッセージが表示され、それ以前では表示されない理由です。エラーとしてログに記録されたとしても、それは実際には単なるメッセージです。
基本的に、自動インデックスは、インデックスが作成されていない列でルックアップを実行するときに機能します。 sqliteは、データが多すぎるため、一時的なインデックスの生成は生のルックアップよりも安価であると想定しています。
CREATE INDEX
を使用して、ルックアップ列に明示的で永続的なインデックスを追加することを検討してください 。たとえば、CREATE TABLE
の後 :
CREATE INDEX indexname ON tablename(columnname);
tablename(columnname)
を選択できる場所 sqliteによって生成された自動インデックスメッセージから。
古い動作を元に戻したい場合は、
を使用して自動インデックス作成を無効にできます。PRAGMA automatic_index=off;