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);」のようにsthを実行することは可能ですか?_idはdatabase.insert()で生成されます。

注: 1回の挿入呼び出しの解決策を探しています。(field1 = _id)を使用した行の挿入と更新は簡単です。

4

1 に答える 1

1

私は今見ていると思います。オブジェクトで使用可能な場合_id、特定のSQLite行フィールドに値を入力できるかどうかを尋ねています。それ以外の場合は、通常行われているように、挿入中にデータベースがその列の一意のIDを自動的に作成するようにします。これは正しいです?val

そのために、私はこの目的を真剣に再考します。列は一意である必要があるため、列に値を指定しないでください。指定しないと、_id例外がスローされます。さらに、それはシステムの一意の識別子になることだけが目的であるため、この値を個人的に知っていることは役に立たないはずです。

それでもこの機能が必要な場合は、テーブルに別のフィールドを作成することをお勧めします(_id列とよく似ていますが、そうではありません)。ランダムに生成された数値またはval.getVal1値を入力できます。

于 2013-01-11T15:32:41.880 に答える