Подтвердить что ты не робот

PHP Postgres: получить последний идентификатор вставки

Я нашел еще пару вопросов по этой теме. Этот...

mysql_insert_id альтернатива postgresql

... и руководство, похоже, указывают, что вы можете называть lastval() в любое время, и он будет работать, как ожидалось. Но этот...

Postgresql и PHP: является ли currval эффективным способом получения последней вставленной строки в многопользовательском приложении?

... похоже, что он должен быть внутри транзакции. Поэтому мой вопрос заключается в следующем: могу ли я просто ждать, пока мне нравится, прежде чем запрашивать lastval() (без транзакции)? И является ли это надежным перед лицом многих параллельных соединений?

4b9b3361

Ответ 1

INSERT, UPDATE и DELETE в PostgreSQL имеют предложение RETURNING, что означает, что вы можете сделать:

INSERT INTO ....
RETURNING id;

Затем запрос вернет значение, которое он вставил для id для каждой вставленной строки. Сохраняет обратный переход к серверу.

Ответ 2

Да, функции последовательности предоставляют многопользовательские методы для получения последовательных значений последовательности из объектов последовательности.