【问题标题】:sqlite - using last_insert_rowid() with multiple insertssqlite - 使用带有多个插入的 last_insert_rowid()
【发布时间】:2013-06-16 05:55:26
【问题描述】:

我正在尝试使用 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)

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

【问题讨论】:

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


    【解决方案1】:

    结果集回调的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]);
    });
    

    【讨论】:

    • 这个问题和这个答案似乎不是通用的 SQLite/SQL 语法,而是使用一种不适用于所有人的特定语言。你能相应地标记这个问题吗?我会这样做,但我不认识这里使用的语言。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    相关资源
    最近更新 更多