0

私はいくつかのレジスタをデータベース SQLite に保存する必要があるプロジェクトを持っていますが、同時に別のテーブルに挿入します。

例:

tables : contact_enc contact_det
contact_enc columns: id, name, telefono
contact_det columns: id, id_ce, name, address, status

contact_encフィールドと同じ時間にフィールドに挿入する必要がありcontact_detます。

4

3 に答える 3

2

単純に 2 つの挿入操作を使用する

于 2012-12-19T16:05:06.280 に答える
1
String sql = "INSERT INTO contact_enc yourdatabase"; 
long lastID = this.database.execSQL(sql); 

int lastInsertId = Integer.ValueOf(lastId);

if(lastInsertId > 0) {
    String sql2 = "INSERT INTO contact_det (id_ce) VALUES(lastInsertId)"; 
    this.database.execSQL(sql2);
}
于 2012-12-19T16:17:35.817 に答える
0

id列がcontact_encとして定義されている場合、次の SQL ステートメントのようにlast_insert_rowid()INTEGER PRIMARY KEY関数を使用して、次々に実行することができます。

BEGIN TRANSACTION;
INSERT INTO contact_enc (name, telefono) VALUES (:Name, :Telefono);
INSERT INTO contact_det (id_ce, name, address, status) SELECT last_insert_rowid(), :Name, :Address, :Status;
COMMIT;

( 、、、およびは名前でバインドされたパラメーターであること:Nameに注意してください。パラメーターを番号でバインドしたい場合は、Android で行う方が簡単なようですが、各プレースホルダーを ? 疑問符に置き換えるだけです)。:Telefono:Name:Address:Status

于 2012-12-20T17:33:06.287 に答える