获取刚刚添加的行的最佳方法是什么,我正在与Heroku、Node和Postgres以及Expressjs一起工作。我想做这样的事情。
app.post( '/', function( req, res ){
client.query("INSERT into ..", function( err, result ){
res.send( result.id );
});
});
理想情况下,回调函数将包含关于它刚刚输入的行的信息,但是它的内容只是一个看起来像
{ rows:[] }
我刚才加了一行,有没有什么好办法,谢谢。
最佳答案
您可能想使用INSERT ... RETURNING
:
可选的RETURNING
子句使INSERT
根据实际插入的每一行计算并返回值。这主要用于获取默认值(如序列号)提供的值。但是,任何使用表列的表达式都是允许的。RETURNING
列表的语法与SELECT的输出列表的语法相同。
所以像这样:
client.query('insert into your_table (...) values (...) returning *', function(err, result) {
// ...
});
应该可以在回调函数中获取新插入的行。