文章目錄
- 概述
- 報錯信息
- 解決方案
概述
SQLite中創建單列索引的方式,跟MySQL類似:
CREATE INDEX index_name ON table_name (column_name);
但是也有不同的地方:
-
MySQL中索引名稱在表內部不重復即可。
-
SQLite中索引名稱在整個庫中必須是不重復的。
報錯信息
SQLite里面同一個庫文件底下,不同表的索引名稱不能重復。否則報錯:
E/SQLiteLog: (1) index idx_xxx already exists
android.database.sqlite.SQLiteException: index idx_xxx already exists (code 1):
, while compiling: CREATE INDEX idx_xxx ON table_name(column_name);
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
解決方案
在索引名稱里拼接表名稱,防止索引名稱重復。
CREATE INDEX idx_table_name_column_name ON table_name (column_name);