sqlite - 使用带有多个插入的last_insert_rowid()

时间:2013-06-19 15:45:42

标签: sqlite cordova insert auto-increment web-sql

我正在尝试使用last_insert_rowid()将记录插入到我的'quote_link'表中,以从'quote'表中的新创建的记录中获取id。然后我将此作为值插入到'quote_link'表中的ql_quote_id列中。

这有效

tx.executeSql( 'INSERT INTO quotelink(ql_quote_id,ql_cat_id,ql_kind_id) Values (last_insert_rowid(),?,?)', [cat_id,kind_id], 

然而,我正在做一些这样的插入,只有第一个获得ql_quote_id的正确值(对于第二个插入,last_insert_rowid()的值从第一次插入获取id)

我在想我需要做一个select子查询,但我不知道语法是什么

1 个答案:

答案 0 :(得分:0)

结果集回调的SQLResultSet允许您获取该ID:

tx.executeSql('INSERT INTO quote(...) VALUES(...)',
              [...],
              function(tx, result) {
    var quote_id = result.insertId;
    tx.executeSql('INSERT INTO quotelink(...) VALUES(?,?,?)',
                  [quote_id, cat_id, kind_id]);
});