Risoluzione dei conflitti in SQLiteDatabase di Android

In che modo la libreria SQLite di Android risolve i conflitti se inserisco righe duplicate? Sto costruendo la mia app per il livello API 7, che sfortunatamente non ha il metodo SQLiteDatabase.insertOnConflict() incluso all’inizio del livello API 8.

È ansible specificare un indice UNIQUE nella definizione della tabella che consentirà alle righe di essere REPLACE D:

 CREATE TABLE mytable ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, UNIQUE (id) ON CONFLICT REPLACE ) 

Se una riga un’istruzione INSERT o UPDATE tenta di aggiungere una riga con un ID già esistente, la riga esistente viene sostituita con quella nuova.

C’è una clausola ON CONFLICT in SQLite che puoi dire INSERT INTO ... ON CONFLICT...

Leggi la documentazione per favore. http://www.sqlite.org/lang_conflict.html

Per impostazione predefinita, l’eccezione indice univoca verrà generata su un indice di indice duplicato. Soluzione comune è verificare l’esistenza dell’esistenza prima di eseguire insert – pseudo-code:

 select * from people where name = 'Smith'; //if resultset is empty then perform insert insert into people values 'Smith'