我正在创建一个应用程序,我在其中插入数据。在表中插入数据后,我想得到该行的id,以便我可以根据它进行进一步的操作。 我尝试使用sqlite的 last_insert_rowid()函数,但没有找到运气。 任何人都可以告诉哪个是最后一个插入行id的最佳方法。 任何想法都表示赞赏。 提前谢谢。
答案 0 :(得分:6)
你可以像这样获得最后一次插入的id -
tx.executeSql("INSERT INTO profile('name','label','list_order','category') values(?,?,?,?)",
[currentProfile.name, currentProfile.label, currentProfile.list_order, currentProfile.category],
function(tx, results){
var lastInsertId = results.insertId; // this is the id of the insert just performed
},
failCB
)
WebSQL中的results.insertId
类似于MySQL中的mysql_insert_id()
-
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());
答案 1 :(得分:1)
你的表中是否有一个名为rowid,oid或_rowid_的列?如果这样做,那将导致last_insert_rowid()
按预期工作的问题。请参阅here。
解决方法: 如果您有一个自动递增的ID列,则可以使用以下SQL获取最后一个条目。
SELECT * FROM yourTable ORDER BY yourIdColumn DESC LIMIT 1
这很hacky,但它会奏效。