@nishe

Правильно ли организовано логирование?

Время в логи вносится не в момент изменений, а в момент добавления записей в сам log. То есть гипотетически, если бы
внесение в логи заняло бы много времени, то логи не отражали бы реальной ситуации, потому что сам update мог произойти намного раньше, чем внесение записи в логи.
Я правильно понимаю?
WITH update_row AS
( UPDATE aircrafts_tmp
SET range = range * 1.2
WHERE model ~ '^Bom'
RETURNING *
)
INSERT INTO aircrafts_log
SELECT ur.aircraft_code, ur.model, ur.range,
current_timestamp, 'UPDATE'
FROM update_row ur;
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Документация отвечает однозначно
Current date and time (start of current transaction);

current_timestamp - это всегда время начала транзакции. Сколько бы транзакция ни заняла времени, до её окончания current_timestamp будет возвращать одно и то же значение.
А правильно это для вашей задачи или нужно использовать другую из функций датывремени - это только к вам вопрос.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы