我有一个项目必须将一些寄存器保存到数据库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
字段。
答案 0 :(得分:2)
只需使用两个插入操作
答案 1 :(得分: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);
}
答案 2 :(得分:0)
如果id
的{{1}}列定义为contact_enc
,则可以使用last_insert_rowid()函数,如下面的SQL语句,在执行后立即执行其他:
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
,:Telefono
,:Name
和:Address
是按名称绑定的参数。如果您更愿意绑定参数按数字显示,在Android中更容易做,只需用?问号替换每个占位符。