Как получить реальное время в рамках транзакции PostgreSQL?

Насколько я понимаю теперь (), возвращает то же время во время целой транзакции PostgreSQL? Но как получить реальное время?

Кроме того, мне интересно, если там какой-либо параметр конфигурации для ограничения продолжительности транзакции, так, чтобы после того, как эта транзакция истечения периода сразу привела бы к сбою или так или иначе еще запретила бы следующие запросы?

22
задан seas 29 July 2010 в 14:12
поделиться

2 ответа

Timeofday()

Может сработать для вас.

4
ответ дан 29 November 2019 в 04:01
поделиться

Чтобы ограничить время выполнения инструкции (не транзакции), вы можете использовать statement_timeout. now () будет увеличиваться при каждом выполнении , если не входит в блок транзакции. Таким образом:

postgres=# select now();
              now              
-------------------------------
 2010-08-11 13:44:36.207614-07
(1 row)

postgres=# select now();
              now              
-------------------------------
 2010-08-11 13:44:36.688054-07
(1 row)

postgres=# select now();
              now              
-------------------------------
 2010-08-11 13:44:40.407623-07
(1 row)

postgres=# begin;
BEGIN
postgres=# select now();
              now              
-------------------------------
 2010-08-11 13:44:43.417611-07
(1 row)

postgres=# select now();
              now              
-------------------------------
 2010-08-11 13:44:43.417611-07
(1 row)

postgres=# 
-3
ответ дан 29 November 2019 в 04:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: