我認爲我需要做的是:如何創建一個cron作業來運行postgres SQL函數?
創建SQL文件,例如nameofsqlfile.sql內容:
執行proc_my_sql_funtion();
以cron作業執行此操作。
不過,我不知道,我需要寫得到的Postgres的函數指定主機,端口,數據庫執行該cron任務的命令,用戶&他的密碼......?
我認爲我需要做的是:如何創建一個cron作業來運行postgres SQL函數?
創建SQL文件,例如nameofsqlfile.sql內容:
執行proc_my_sql_funtion();
以cron作業執行此操作。
不過,我不知道,我需要寫得到的Postgres的函數指定主機,端口,數據庫執行該cron任務的命令,用戶&他的密碼......?
入住這
http://archives.postgresql.org/pgsql-admin/2000-10/msg00026.php 和 http://www.dbforums.com/postgresql/340741-cron-jobs-postgresql.html
或者你可以創建一個bash腳本,包括您的編碼,並從crontab中
調用它你只需要考慮的cronjob作爲運行shell命令在指定的時間或日期。
所以你的第一份工作就是弄清楚如何運行你的shell命令。
psql --host host.example.com --port 12345 --dbname nameofdatabase < my.sql
然後,您可以只添加到您的crontab(我建議你使用crontab -e
以避免重大的事情)
# runs your command at 00:00 every day
#
# min hour wday month mday command-to-run
0 0 * * * psql --host host.example.com --port 12345 --dbname nameofdatabase < my.sql
在大多數情況下,你可以把所有的SQL源的殼「在這裏文件'。有關此文件的好處是,外殼的$ {} MY_VAR甚至單引號擴大,e.g:
#!/bin/sh
THE_DATABASE=personnel
MY_TABLE=employee
THE_DATE_VARIABLE_NAME=hire_date
THE_MONTH=10
THE_DAY=01
psql ${THE_DATABASE} <<THE_END
SELECT COUNT(*) FROM ${MY_TABLE}
WHERE ${THE_DATE_VARIABLE_NAME} >= '2011-${THE_MONTH}-${THE_DAY}'::DATE
THE_END
因人而異