更新数据库列并填充 false



我正在尝试更新我的数据库以具有另一列名为"可见"。 我希望整个列都填充假值。 当我运行代码时,它会进入更新函数并踢出以下错误:

android.database.sqlite.SQLiteException: no such column: true: UPDATE Themes2 SET Visibility = true;
private static final String TABLE_THEMES_V2 = "Themes2";
public static final String KEY_VISIBLE = "Visibility";
if (oldVersion < 8) {
            db.execSQL("ALTER TABLE " + TABLE_THEMES_V2 + " ADD COLUMN " + KEY_VISIBLE + " text");
            db.execSQL("UPDATE " + TABLE_THEMES_V2 + " SET " + KEY_VISIBLE + " = true;");
            db.setTransactionSuccessful();
        }

有谁知道出了什么问题? 我很久以前使用相同的函数在列中输入"1"......

您的KEY_VISIBLE列具有文本数据类型,因此您应该使用以下语法对其进行更新,

db.execSQL("UPDATE " + TABLE_THEMES_V2 + " SET " + KEY_VISIBLE + " = 'true';");

您只是缺少字符串值'单个倒置标记。

您可以尝试的另一种方法如下,通过将KEY_VISIBLE列设置为整数类型

db.execSQL("ALTER TABLE " + TABLE_THEMES_V2 + " ADD COLUMN " + KEY_VISIBLE + " INTEGER");
db.execSQL("UPDATE " + TABLE_THEMES_V2 + " SET " + KEY_VISIBLE + " = 1;"); // for True
db.execSQL("UPDATE " + TABLE_THEMES_V2 + " SET " + KEY_VISIBLE + " = 0;"); // for False

最新更新