Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PostgreSQL > Сохранение идентификатора пользователя


Автор: Elfix 13.7.2022, 10:17
Всем привет!

Есть NodeJS на express. Он соединяется с базой PostgreSQL и выполняет запросы пользователей, которые стучатся на сервер для получения результатов rest api.

Получается, что у express много пользователей, у postgresql один - приложение.

Такие пользователи express периодически что то записывают в базу данных, посылая туда запросы.

В Postgresql есть тригеры, которые фиксируют дату изменения записи в таблице. Как туда еще добавить информацию с id пользователя express, который изменил запись в таблице?

Перед выполнением запроса можно как то передать этот ID, чтобы он стал доступен тригеру, а после выполнения запроса пользователя этот ID уничтожить?

Автор: Akina 15.7.2022, 21:40
Цитата(Elfix @  13.7.2022,  11:17 Найти цитируемый пост)
пользователи express периодически что то записывают в базу данных, посылая туда запросы.

Переходи с запросов на процедуры. В параметрах процедуры, в дополнение к вставляемым данным, можно любые дополнительные данные протащить, да ещё и записать их куда требуется, обойдясь в принципе без триггеров.

Автор: Elfix 15.7.2022, 23:10
Я функциями и записываю данные.
Но тащить параметрами функции еще и доп. информацию, неудобно.
В тригерах лучше.

Я решил проблему через SET SESSION app.user_id = 1; и через current_settings('app.user_id')::bigint;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)