Обновление строк на основе времени в PostgreSQL

#sql #events #postgresql #time #sql-update

#sql #Мероприятия #postgresql #время #sql-обновление

Вопрос:

Каков наилучший способ обновлять таблицы на основе времени в PostgreSQL?

Например, у меня есть база данных со следующими записями.

 ColumnA  StartTime  EndTime
123      02:05:01   02:06:01   
456      02:06:01   02:07:01
  

Возможно ли обновить значения ColumnA на основе столбца EndTime, возможно, события time? Например, если время сервера равно 2:06:01, то значение 123 будет увеличено на 100.

Я пытался использовать pgagent, но я думаю, что это не подходит для событий, зависящих от времени (секунд), особенно если в базе данных большое количество строк.

Можете ли вы предложить решения для этого. Спасибо.

Ответ №1:

Вы хотите запустить ОБНОВЛЕНИЕ по времени сервера.
Одним из способов было бы создать для этого cronjob. Вызовите crontab -e от имени пользователя postgres (или любого другого пользователя, которого вы хотите запустить) на компьютере с Linux и запланируйте что-то подобное на время по вашему выбору:

 psql mydb -p5432 -c 'UPDATE tbl SET columna = columna   100 WHERE columna = 123'
  

Кстати, я бы посоветовал не использовать идентификаторы смешанного регистра в PostgreSQL.