PHP Postgres:获取最后插入 ID
我发现了关于这个主题的其他几个问题。这个...
postgresql 的 mysql_insert_id 替代品
...和 手册似乎表明您可以随时调用 lastval()
,它的工作方式如下预期的。但是这个...
Postgresql 和 PHP:currval 是在多用户应用程序中检索最后一行插入的 id 的有效方法吗?
...似乎表明它必须在事务内。所以我的问题是:在查询 lastval()
(没有事务)之前,我可以随心所欲地等待吗?面对许多并发连接,这可靠吗?
I found a couple of other questions on this topic. This one...
mysql_insert_id alternative for postgresql
...and the manual seem to indicate that you can call lastval()
any time and it will work as expected. But this one...
...seems to state that it has to be within a transaction. So my question is this: can I just wait as long as I like before querying for lastval()
(without a transaction)? And is that reliable in the face of many concurrent connections?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
PostgreSQL 中的 INSERT、UPDATE 和 DELETE 有一个 RETURNING 子句,这意味着您可以执行以下操作:
然后查询将返回为插入的每一行插入的 id 值。保存到服务器的往返。
INSERT, UPDATE and DELETE in PostgreSQL have a RETURNING clause which means you can do:
Then the query will return the value it inserted for id for each row inserted. Saves a roundtrip to the server.
是的,序列函数提供多用户安全< /strong> 从序列对象获取连续序列值的方法。
Yes, the sequence functions provide multiuser-safe methods for obtaining successive sequence values from sequence objects.