Обновление строк на основе времени в PostgreSQL - PullRequest
1 голос
/ 11 ноября 2011

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

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

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

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

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

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

1 Ответ

2 голосов
/ 11 ноября 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...