作者:ghost | 来源:互联网 | 2023-05-17 19:35
我使用node.js sqlite3来操作数据.我使用这些代码将数据插入数据库并获取插入的id:
db.run("INSERT INTO myTable (name) VALUES ('test')");
db.get("SELECT last_insert_rowid() as id", function (err, row) {
console.log('Last inserted id is: ' + row['id']);
});
我认为这不稳定.我的数据库连接始终打开.当我的服务器在来自客户端的多个同时连接上提供此代码时,是否SELECT last_insert_rowid()
正确获取ID?sqlite是last_insert_rowid原子吗?谢谢.
1> Mikalai..:
通过文档sqlite3 Database#run(sql,[param,...],[callback])
你可以lastID
从回调中恢复.
2> 小智..:
try{
db.run("INSERT INTO TABLE_NAME VALUES (NULL,?,?,?,?)",data1,data2,data3,data4,function(err){
if(err){
callback({"status":false,"val":err});
}else{
console.log("val "+this.lastID);
callback({"status":true,"val":""});
}
});
}catch(ex){
callback({"status":false,"val":ex});
}
this.lastID返回最后插入的行id 通过文档sqlite3数据库 #run (sql,[param,...],[callback])