gpt4 book ai didi

android - 编译时在 "NOT": syntax error: , 附近:如果不存在则创建虚拟表

转载 作者:行者123 更新时间:2023-11-29 00:25:34 28 4
gpt4 key购买 nike

我有一个场景“如果不存在则使用 fts4(_id 文本,desc 文本) 搜索内容创建虚拟表”正在崩溃:在“NOT”附近:语法错误:,编译时:如果不存在则创建虚拟表

这只发生在运行 4.0.2 的 galaxy nexus 手机上。当我在运行 4.1.2 的 galaxy note 2 上尝试时,一切正常。如果我再次删除“如果不存在”,它将在 Nexus 手机上运行。有谁知道错误是什么?是安卓版本问题吗?

在我的 sqlitehelper 类中:

public static final String SearchContentTable_DATABASE_CREATE = "CREATE VIRTUAL TABLE IF NOT EXISTS " + TABLE_NAME + " USING fts4 ( " + 
COLUMN_ID + " " + "TEXT" + " , " +
COLUMN_TITLE + " " + "TEXT" + " , " +
COLUMN_DESCRIPTION + " " + "TEXT" + " , " +
COLUMN_KEYWORDS + " " + "TEXT" + " , " +
COLUMN_TYPE + " " + "TEXT" + " );";

@Override
public void onCreate( SQLiteDatabase database )
{
.
.
.
database.execSQL( SearchContentTable_DATABASE_CREATE );
.
.
.
}

最佳答案

“IF NOT EXISTS”语句在某些 Android 版本中不起作用,特别是 4.0.x 版本。至少在创建虚拟表时。它在 4.0.4 和 4.0.3 版本中多次使我发布的应用程序之一崩溃。我的应用程序在版本 4+ 中正常运行,但一旦它仅在这些特定版本中使用 DB 就会崩溃。

事实上,您不需要“IF NOT EXISTS”语句,因为您在 SQLiteOpenHelper 实现中正确使用了 onCreate 和 onUpgrade 函数。我使用它只是为了预防和避免在开发过程中出现问题。

关于android - 编译时在 "NOT": syntax error: , 附近:如果不存在则创建虚拟表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19849068/

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