Android - 保存影响多个表的多个记录

时间:2012-12-19 15:58:43

标签: android sqlite

我有一个项目必须将一些寄存器保存到数据库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字段。

3 个答案:

答案 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中更容易做,只需用?问号替换每个占位符。