Я искал в Google и прочитал пару статей о том, как разные люди подходят к этой проблеме, но мне было интересно, какой способ решения этой проблемы - это то, что лучше всего подходит для моей ситуации.Postgres/PHP - Каков стандартный способ получить идентификатор вставленной строки?
У меня есть страница AJAX, которая создает новый вопрос, и мне нужно знать, как получить идентификатор из запроса вставки в том же php-файле, на следующей строке.
Это выглядит примерно так:
$r = pg_query("INSERT INTO questions (audit_id, type_id, order) VALUES (1,1,1)");
// Fetch ID from $r here...
Я видел mysql_insert_id()
функции для MySQL и слышал, что pg_last_oid()
похож на PostgreSQL, но documentation утверждает, что она устарела и будет удалена в ближайшее время. Я также видел использование CURRVAL('my_sequence_table.id')
, но я не уверен, что это будет работать с AJAX, поскольку это может поднять состояние гонки.
Может кто-нибудь пожалуйста, скажите мне стандартного PHP/PostgreSQL способа решить эту проблему? Я был бы очень признателен за любые комментарии.
P.S. Я скучаю по Ruby on Rails!
oh BTW, pg_last_oid, конечно же, не очень хорошая идея. По умолчанию таблицы не имеют идентификаторов OID. – alvherre
@ alvherre - Да, я поймал это где-то в своем чтении. Что означает O OID в любом случае? –
"объект". Обратите внимание, что OID по-прежнему используются для идентификации системных объектов (т. Е. Таблиц, схем, баз данных и т. Д.). – alvherre