Нет такой возможности и нет приемлемых обходных путей.
Невозможным обходным решением является создание специальной хранимой процедуры специально для выполнения INSERT, но это не является общим решением, поскольку команда INSERT принимает переменное число параметров (не в последнюю очередь из которых являются столбцы и данные для заполнить), а хранимая процедура должна иметь фиксированное количество параметров.
Если бы существовала функция SQL, которая бы возвращала специальный идентификатор сеанса, который соответствовал временному соединению клиента с механизмом SQL, было бы возможно, чтобы клиент и триггер / хранимая процедура взаимодействовали, используя предопределенную таблицу в качестве очередь запросов (используя идентификатор сессии в качестве ключа). К сожалению, согласно документации такой идентификатор сессии отсутствует.
Основной вариант использования для моего вопроса был для способа реализации автоинкрементных первичных ключей на INSERT, которые бы сообщали клиенту вставленный идентификатор, так что мне не пришлось бы заставлять клиента либо
- обеспечивает непосредственное значение для самих ПК
- обеспечивает последовательность, которая соответствует таблице, которую они обновляют
К сожалению, из-за отсутствия поддержки мне пришлось наложить ограничения на клиента, чтобы обеспечить одно из вышеперечисленного (и при отсутствии любого из них предполагается, что существует последовательность <tablename>_id_seq
).