如何在Node.js和Postgresql中找到最后一个插入ID?

时间:2016-05-15 21:08:45

标签: node.js postgresql

向postgres发出“insert”语句时,如何获取最后在DB中插入的行的ID?

我尝试了“pg”,“pg-native”,“pg-connection”以及其他一些软件包。对于每个包,我尝试了async和{{1}}方法。我读了假装成包文档的东西。我检查了包的源代码。对于我的生活,我无法理解这一点,我无法相信我是唯一一个面对这个问题的人。

非常感谢任何见解。

1 个答案:

答案 0 :(得分:11)

此处的关键是在INSERT查询中使用RETURNING id

pg wiki有an example that shows how this is done

// Let's pretend we have a user table with the 'id' as the auto-incrementing primary key
var queryText = 'INSERT INTO users(password_hash, email) VALUES($1, $2) RETURNING id'
client.query(queryText, ['841l14yah', 'test@te.st'], function(err, result) {
  if (err) //handle error
  else {
    var newlyCreatedUserId = result.rows[0].id;
  }
});

async/await

const result = await client.query(queryText, ['841l14yah', 'test@te.st']);
const newlyCreatedUserId = result.rows[0].id;