Webkit(至少在 iPhone 和 Safari 上)通过 SQLite 支持 HTML5 的数据库存储。
我试图弄清楚如何最好地获取以下事务的插入 ID(数据库中有一个自动增量字段“id”)。
db.transaction(function(tx) {
tx.executeSql("INSERT INTO teams (name) VALUES (?)", [$('#team_name').val()]);
});
Webkit(至少在 iPhone 和 Safari 上)通过 SQLite 支持 HTML5 的数据库存储。
我试图弄清楚如何最好地获取以下事务的插入 ID(数据库中有一个自动增量字段“id”)。
db.transaction(function(tx) {
tx.executeSql("INSERT INTO teams (name) VALUES (?)", [$('#team_name').val()]);
});
下面的代码示例来自 Apple 的文档,我知道它适用于 iPhone 和 Safari,可能还有 WebKit。您可以使用 resultSet 响应对象获取插入 idresultSet.insertId
此外,您可以获取受影响的行数,例如通过使用 resultSet 对象的 rowsAffected 属性进行更新查询。
db.transaction(
function (transaction) {
transaction.executeSql('INSERT into tbl_a (name) VALUES ( ? );',
[ document.getElementById('nameElt').innerHTML ],
function (transaction, resultSet) {
if (!resultSet.rowsAffected) {
// Previous insert failed. Bail.
alert('No rows affected!');
return false;
}
alert('insert ID was '+resultSet.insertId);
transaction.executeSql('INSERT into tbl_b (name_id, color) VALUES (?, ?);',
[ resultSet.insertId,
document.getElementById('colorElt').innerHTML ],
nullDataHandler, errorHandler);
}, errorHandler);
}, transactionErrorCallback, proveIt);
像这样的东西应该可以工作:
SELECT last_insert_rowid();