次のテーブル定義があります。
CREATE TABLE arbol32 (_id integer primary key autoincrement, ID integer, NIVEL integer, TEXTO text, ID_ORIG integer, CONTRATO integer, CODALMTESTOR text, CENTRO text, SECUEN text, DNIACUM text, UNIQUE(ID));
そして、複数回呼び出される次のコード片:
if(sArbol32.getPropertyCount()>0)
{
cargarAuxiliares=true;
Arbol32BE[] arbol32=WSManager.RetrieveArbol32FromSoap(sArbol32);
arbol32Table.open();
arbol32Table.beginTransaction();
for(int i=0;i<sArbol32.getPropertyCount();i++){
arbol32Table.create(arbol32[i].id, arbol32[i].nivel, arbol32[i].texto, arbol32[i].id_orig,
arbol32[i].contrato, arbol32[i].codalmtestor, arbol32[i].centro,arbol32[i].secuen,arbol32[i].dniacum);
}
arbol32Table.setTransactionSuccessful();
arbol32Table.endTransaction();
arbol32Table.close();
}
最後に、これは create メソッドのコードです。
public long create(int id,int nivel,String texto,int id_orig,int contrato,String codalmtestor,String centro,String secuen, String dniacum) {
Log.i(TAG, "Inserting record...");
ContentValues initialValues = new ContentValues();
//initialValues.put(KEY_ROWID, id);
initialValues.put(KEY_ID,id);
initialValues.put(KEY_NIVEL,nivel);
initialValues.put(KEY_TEXTO,texto);
initialValues.put(KEY_ID_ORIG,id_orig);
initialValues.put(KEY_CONTRATO,contrato);
initialValues.put(KEY_CODALMTESTOR,codalmtestor);
initialValues.put(KEY_CENTRO,centro);
initialValues.put(KEY_SECUEN,secuen);
initialValues.put(KEY_DNIACUM,dniacum);
return mDb.insert(DATABASE_TABLE, null, initialValues);
}
UNIQUEを指定したのに同じIDの重複行が挿入されてしまうのが悩みです。私が間違っていることは何ですか??