currval() и пул

Марат

Новичок
currval() и пул

Здравствуйте!
Функция currval() возвращает последнее значение sequence для текущей сессии.
Как я понял, если будет использоваться пул коннектов, то это значение будет одинаковым для всех скриптов? Так как пул будет держать постоянную сессию с базой? или я ошибаюсь?
Возможно ли как-то устеречь себя от неверных значений currval()?
Единственным решением пока вижу вместо currval() делать так:
После INSERT делать SELECT с поиском параметров из инсерта. То есть искать последнюю добавленную запись с добавленными параметрами.
Это единственное решение? Или есть более "красивые"?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Марат
Как я понял, если будет использоваться пул коннектов, то это значение будет одинаковым для всех скриптов? Так как пул будет держать постоянную сессию с базой? или я ошибаюсь?
Ошибаешься.

Возможно ли как-то устеречь себя от неверных значений currval()?
Ты когда-нибудь уже видел "неверное значение currval()"? А то пока ты занимаешься, как в известном анекдоте, распугиванием крокодилов.
 

Марат

Новичок
Автор оригинала: Sad Spirit
Ты когда-нибудь уже видел "неверное значение currval()"? А то пока ты занимаешься, как в известном анекдоте, распугиванием крокодилов.
К сожалению, сейчас нет возможность использовать Postgres через пул. Поэтому пока только думаю о подводных камнях с пулом.
Значит я ошибался? Отдельная сессия будет и с пулом?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Марат
К сожалению, сейчас нет возможность использовать Postgres через пул. Поэтому пока только думаю о подводных камнях с пулом.
Значит я ошибался? Отдельная сессия будет и с пулом?
Если не пускать тот же pgbouncer в режиме statement pooling, то да.
 
Сверху