Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


SQLite de SQL INSERT o IGNORE no funciona

¿Por qué la instrucción IGNORE no funciona? Cada vez que ejecutar este el mismo valor fueron insertar en la base de datos y no sé por qué?

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 schema es:

  • Db_datum (varchar (100))

  • Db_zahlen (varchar (100))

  • Db_scheine (entero)

Tengo el 2 String "datum" y "zahlen" y me gustaría insertarlos en la base de datos. Ahora el problema es, si las mismas cadenas ya están en el db y el código se ejecuta de nuevo que deben ser ignorados y nunca volver a insertar.

2 Solutions collect form web for “SQLite de SQL INSERT o IGNORE no funciona”

Puede utilizar insertWithOnConflict. Ex:

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

No debes usar execSQL para hacer un comando INSERT (consulta los documentos).

Utilice myDB.insertOrThrow(...) lugar:

 ContentValues cv = new ContentValues(); cv.put("db_datum", datum); cv.put("db_zahlen", zahlen); cv.put("db_scheine", 9); myDB.insertOrThrow(MY_DB_TABLE, null, cv); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.