Android SQLite 插入或忽略不起作用

标签 android sqlite

为什么 IGNORE 语句不起作用?每次我运行这个相同的值都会插入到数据库中,我不知道为什么?

        myDB = this.openOrCreateDatabase(MY_DB_NAME, MODE_PRIVATE, null);
        myDB.execSQL("INSERT OR IGNORE INTO " + MY_DB_TABLE + "(db_datum, db_zahlen, db_scheine)" 
                +"VALUES ('"+datum+"',"+
                "'"+zahlen+"',"+
                "'"+9+"');");

数据库模式是:

  • db_datum (varchar(100))

  • db_zahlen (varchar(100))

  • db_scheine(整数)

我有 2 个字符串“datum”和“zahlen”,想将它们插入数据库。现在的问题是,如果相同的字符串已经在数据库中并且代码再次运行,它们将被忽略并且永远不会再次插入。

最佳答案

您可以使用 insertWithOnConflict。 例如:

mDb.insertWithOnConflict(DATABASE_TABLE, null, initialValues, SQLiteDatabase.CONFLICT_IGNORE);

关于Android SQLite 插入或忽略不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6918206/

相关文章:

android - 查看 Android 键盘缓存

java - Android Studio - 查看错误

数据库中的 SQLite 反向 LIKE 通配符

nhibernate - 内存中的 SQLite 和 NHibernate

database - 如何从多个 SQLite 数据库中选择所有列

Android 9 RTT 范围请求状态 1

Android:如何使用 VirtualDisplay 在 WallpaperService 中托管 WebView?

java - 创建强制用户创建 javadoc 的 Android Lint 检查。 (像向新开发人员解释一样进行解释)

sql - sqlite更新上的“没有这样的功能”错误

java - 由 : android. database.sqlite.SQLiteException 引起:接近 "text":语法错误(代码 1):