PHP Postgres:获取最后插入 ID

发布于 2024-11-17 17:40:57 字数 541 浏览 3 评论 0原文

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

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...

Postgresql and PHP: is the currval a efficent way to retrieve the last row inserted id, in a multiuser application?

...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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

终陌 2024-11-24 17:40:57

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

INSERT INTO ....
RETURNING id;

然后查询将返回为插入的每一行插入的 id 值。保存到服务器的往返。

INSERT, UPDATE and DELETE in PostgreSQL have a RETURNING clause which means you can do:

INSERT INTO ....
RETURNING id;

Then the query will return the value it inserted for id for each row inserted. Saves a roundtrip to the server.

青春有你 2024-11-24 17:40:57

是的,序列函数提供多用户安全< /strong> 从序列对象获取连续序列值的方法。

Yes, the sequence functions provide multiuser-safe methods for obtaining successive sequence values from sequence objects.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文