gpt4 book ai didi

java - 无法在 Android sqlite 中创建 TEMP 表

转载 作者:IT王子 更新时间:2023-10-29 06:23:39 26 4
gpt4 key购买 nike

我尝试在 Android 中创建一个临时表 (sqlite)

这是代码 fragment :

// No error - But cannot create TEMP table
database.rawQuery("CREATE TEMP TABLE IF NOT EXISTS tt1 (unread_message int, target varchar)", null);

// Error - android.database.sqlite.SQLiteException: no such table: tt1: , while compiling: INSERT INTO tt1 SELECT count(*), target FROM messages where read_status=0 and direction=1 GROUP BY target
database.rawQuery("INSERT INTO tt1 SELECT count(*), target FROM messages where read_status=0 and direction=1 GROUP BY target", null);

create TEMP TABLE 查询没有错误,但它提示 tt1 在第二个查询中不存在。我是否以错误的方式创建了 TEMP 表?

最佳答案

通常您不应该使用 rawQuery 创建表和执行插入 - 尝试使用 SQLiteDatabase#execSQL

这个例子至少有效:

    SQLiteOpenHelper dummy = new SQLiteOpenHelper(this, "mobileAppBeginner.db", null, 1) {
@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
@Override public void onCreate(SQLiteDatabase db) {}
};

SQLiteDatabase db = dummy.getWritableDatabase();
db.execSQL("CREATE TEMP TABLE messages (read_status INTEGER, direction INTEGER, target TEXT)");
db.execSQL("CREATE TEMP TABLE IF NOT EXISTS tt1 (unread_message int, target varchar)");
db.execSQL("INSERT INTO tt1 SELECT count(*), target FROM messages where read_status=0 and direction=1 GROUP BY target");

关于java - 无法在 Android sqlite 中创建 TEMP 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9619917/

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