android sqlite 使用 where 子句创建索引失败

标签 android sql sqlite

理论上简单的sql语句:

CREATE UNIQUE INDEX i1 ON MyTable (col1, col2) WHERE col3 IS NULL;

然而,当我尝试执行该语句时,我得到:

android.database.sqlite.SQLiteException: near "WHERE": syntax error: , while compiling: CREATE UNIQUE INDEX 

为什么????有什么解决方法吗?

最佳答案

我没有在 android 中使用索引,但它出现在 sqlite changelog 中部分索引在 SQLite 3.8.0 中可用。

我认为大多数 android 设备(某些是 4.3 和更早版本)都使用早期版本的 SQLite。在终端模拟器或 adb shell 中,使用 sqlite3 --version 查看您的设备运行的 SQLite 版本。如果它是 3.8.0 之前的版本,则它不支持部分索引,您将不得不取消 WHERE 子句。

实际上,无论如何您都应该取消 WHERE 子句,因为在您发布应用程序时,许多用户没有合适的 sqlite 版本来使用您的应用程序。反正没必要。

关于android sqlite 使用 where 子句创建索引失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20303076/

相关文章:

c - Sqlite3 - 试图在回调中填充结构

sqlite - 检查表是否已在BB 10级联中存在/创建

android - 服务可以访问 Activity 中的变量吗?

android - 如何降低 Android 上字节格式图像的质量?

mysql - 将同一个表中的 2 个 SQL 查询合并为 1 个

sql - SQL Compact Edition 是否支持聚集索引?

java.io.FileNotFoundException :/storage/emulated/0/MyPDFDocument/questions. pdf(没有这样的文件或目录)

android - getBluetoothLeAdvertiser() 返回 null

sql - LIKE 对非英文字母不区分大小写

ios - 在 iOS 中加密/解密存储在 SQLite 数据库中的数据需要指导