15

我发现了关于这个主题的其他几个问题。这个...

mysql_insert_id 替代 postgresql

...并且手册似乎表明您可以随时致电lastval(),它会按预期工作。但是这个...

Postgresql 和 PHP:currval 是在多用户应用程序中检索最后一行插入 id 的有效方法吗?

...似乎表明它必须在交易中。lastval()所以我的问题是:在查询(没有交易)之前,我可以等多久就等多久?面对许多并发连接,这是否可靠?

4

2 回答 2

32

PostgreSQL 中的 INSERT、UPDATE 和 DELETE 有一个 RETURNING 子句,这意味着您可以:

INSERT INTO ....
RETURNING id;

然后查询将为插入的每一行返回它为 id 插入的值。节省到服务器的往返行程。

于 2011-06-27T05:16:48.143 回答
6

的,序列函数提供了多用户安全的方法来从序列对象中获取连续的序列值。

于 2011-06-26T18:14:15.877 回答