0

我有一个案例,我想用 database.insert(table, null, values) 在 SQLite 中插入记录。

TABLE t2 (_id, field1, field2)
..

val.setVal1(null);
val.setVal2(val2);
..

if(val.getVal1==null){
  values.put(field1, _id);
}else{
    values.put(field1, var.val1);
}
values.put(field2, var.val2);

database.insert("t2", null, values);

有可能像这样“values.put(field1, _id);”做某事吗?_id 在 database.insert() 中生成。

注意:我正在寻找一个插入调用的解决方案。使用 (field1=_id) 插入和更新行很容易。

4

1 回答 1

1

我想我现在明白了。您在询问是否可以在特定的 SQLite 行_id字段中输入值(如果它在您的val对象中可用)。否则,您希望数据库在插入时自动为该列创建唯一 ID,就像通常所做的那样。它是否正确?

为此,我会认真重新考虑这个目的。您永远不应该为该_id列指定值,因为它必须是唯一的,否则您将抛出异常。此外,它的唯一目的是成为系统的唯一标识符,因此您个人知道该值对您来说应该没有用。

如果您仍然需要此功能,我建议您在表中创建另一个字段(很像_id列但不是它),您可以用随机生成的数字或val.getVal1值填充该字段。

于 2013-01-11T15:32:41.880 回答