gpt4 book ai didi

android - SQLite 重命名 fts3 rowid 列

转载 作者:行者123 更新时间:2023-11-30 04:22:31 24 4
gpt4 key购买 nike

我正在使用教程 here为 AutoCompleteTextView 提供一个 SimpleCursorAdapter。它按原样完美运行,但我已将数据库更改为使用 fts3,因为我听说它更快(因此得名)。

似乎代码中的某些内容是硬连线使用列 _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 中,因此我对此无能为力。

我在想可能有一种方法可以通过使用 SELECT rowid,* FROM mytable 强制代码将 rowid 识别为 _id然后以某种方式更改列名。我对 sql 还很陌生,所以非常感谢您的帮助!

最佳答案

重命名 SQLite 中的列可以按照描述的方式完成 here .请注意,强烈建议在事务中执行所有这些操作。在 Android 中执行此操作时的一个细节 - 我不知道您如何在解决方案中执行 sql 脚本,但请记住 this如果您使用 execSQL 调用。

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

关于android - SQLite 重命名 fts3 rowid 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9050476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com