我正在尝试获取由以下插入创建的主键 (ID):
public void insert (int FK_Vistoria, int CodIrregularidade, int FK_Equipamento, int FK_SubArea) throws SQLException {
String sql = "INSERT OR REPLACE INTO " + DATABASE_TABLE + " VALUES (?, ?, ?, ?);";
SQLiteStatement statement = mDb.compileStatement(sql);
mDb.beginTransaction();
statement.bindLong(1, FK_Vistoria);
statement.bindLong(2, FK_Equipamento);
statement.bindLong(3, CodIrregularidade);
statement.bindLong(4, FK_SubArea);
statement.execute();
mDb.setTransactionSuccessful();
mDb.endTransaction();
}
我尝试使用这段代码来获取它:
int idIrregularidade = mDb.insert(idVistoria, idCriterio, idEquipamento, idArea);
有人可以帮忙吗?
最佳答案
SQLiteStatement.execute()方法返回 void
而不是插入的行 ID。
使用SQLiteStatement.executeInsert ()如果插入成功,返回 插入的最后一行的行 ID。 -1 否则
更改 insert
方法以在调用时获取行 ID:
public long insert (int FK_Vistoria,...){
....
long insertedRowID= statement.executeInsert();
....
return insertedRowID;
}
关于Android SQLite - 获取 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34678570/