获取刚刚添加的行的最佳方法是什么,我正在与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) {
    // ...
});

应该可以在回调函数中获取新插入的行。

10-07 13:25