PHP Postgres:获取上次插入ID

时间:2011-06-26 18:10:41

标签: php sql postgresql sequence last-insert-id

我在这个主题上发现了其他一些问题。这一个...

mysql_insert_id alternative for postgresql

... the manual似乎表示您可以随时致电lastval(),它会按预期工作。但是这一个......

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

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

2 个答案:

答案 0 :(得分:30)

PostgreSQL中的

INSERT,UPDATE和DELETE有一个RETURNING子句,这意味着你可以这样做:

INSERT INTO ....
RETURNING id;

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

答案 1 :(得分:6)

是的,the sequence functions提供了多用户安全方法,用于从序列对象中获取连续的序列值。