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.

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); 
  • ¿Estoy bebiendo la plataforma / hardware?
  • SQLite en Android Cómo actualizar una fila específica
  • Tablas de muestra Android sqlite
  • Excepción de puntero nulo de SQLiteOpenHelper.getWriteableDatabase () en Android
  • AutoCompleteTextView con CursorLoader y SimpleCursorAdapter
  • SQLite rawQuery campos de selecciónArgs y enteros
  • No se puede abrir la base de datos-Android
  • Cómo eliminar una sola fila en android sqlite
  • SQLiteDiskIOException: error de E / S de disco (código 3850)
  • Almacenamiento en caché de datos para aplicaciones móviles de iOS / Android para trabajar con Pagination
  • Cómo obtener entradas nulas de sqlite en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.