Мне нужно иметь возможность идентифицировать строку, которую я только что вставил после использования pg_insert, но документ просто говорит, что он возвращает true / false. Как я могу определить pkey записи из pg_insert ()? Я знаю, что мог бы использовать вручную созданный запрос с «RETURNING pkey» в конце, но я не хочу использовать pg_query (), потому что pg_insert автоматически экранирует все для вас, поэтому я хочу использовать его вместо этого.
Ты можешь использовать pg_query_params с RETURNING
пункт и использовать параметры, чтобы избежать всего.
Единственная проблема с этой функцией заключается в том, что при возникновении ошибки вы не можете узнать ее истинную причину. Получение правильного сообщения об ошибке означает использование pg_send_query_params с pg_get_result.
См пример кода.
Поскольку в pgsql нет концепции id (только последовательности), вы можете использовать следующий код.
SELECT currval(pg_get_serial_sequence(tablename, 'id'));