Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLite重命名fts3 rowid列_Android_Sqlite_Cursor - Fatal编程技术网

Android SQLite重命名fts3 rowid列

Android SQLite重命名fts3 rowid列,android,sqlite,cursor,Android,Sqlite,Cursor,我正在使用一个教程来提供一个带有SimpleCorsorAdapter的AutoCompleteTextView。它的工作原理是完美的,但我已经将数据库改为使用fts3,因为我听说它更快(因此得名) 代码中的某些内容似乎硬连接到使用列\u id,因为在更改为fts3表后,我得到以下错误: 01-28 21:31:53.018: E/AndroidRuntime(16284): java.lang.IllegalArgumentException: column '_id' does not ex

我正在使用一个教程来提供一个带有SimpleCorsorAdapter的AutoCompleteTextView。它的工作原理是完美的,但我已经将数据库改为使用fts3,因为我听说它更快(因此得名)

代码中的某些内容似乎硬连接到使用列
\u id
,因为在更改为fts3表后,我得到以下错误:

01-28 21:31:53.018: E/AndroidRuntime(16284): java.lang.IllegalArgumentException: column '_id' does not exist
01-28 21:31:53.018: E/AndroidRuntime(16284): at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314)
尽管我没有在任何地方声明自动递增键(因为在fts3中它被
rowid
取代)。错误发生在
AbstractCursor
中,因此我对此无能为力


我想可能有一种方法可以强制代码将
rowid
识别为
\u id
,方法是使用
SELECT rowid,*FROM mytable
,然后以某种方式更改列名。。我对sql非常陌生,因此非常感谢您的帮助

在SQLite中重命名列可以按如下所述进行。请注意,最好在事务中执行所有这些操作。在Android中执行此操作的一个细节-我不知道如何在解决方案中执行sql脚本,但请记住,如果使用execSQL调用


顺便说一句,如果您不想重命名该列,可以尝试建议的技术。

在SQLite中重命名列可以按照所述操作。请注意,最好在事务中执行所有这些操作。在Android中执行此操作的一个细节-我不知道如何在解决方案中执行sql脚本,但请记住,如果使用execSQL调用


顺便说一句,如果您不想重命名该列,您可以尝试所建议的技巧。

您的第二个建议(使用
作为
)很顺利。谢谢你的第二个建议(使用
作为
)很顺利。谢谢我有完全相同的问题我有完全相同的问题