📅  最后修改于: 2023-12-03 15:05:57.451000             🧑  作者: Mango
如果你是一名 PostgreSQL 数据库开发者,你可能会经常需要将一些查询结果导出为 CSV 格式的文件。但是,每次都手动执行导出命令是非常麻烦的。如果你使用 PowerShell 脚本,那么可以自动化这一过程,并将其与计划任务结合起来。
psql
命令执行查询,生成 CSV 文件。out-file
命令将查询结果保存到文件中。Task Scheduler
计划任务在每天特定的时间自动执行脚本。SELECT col1, col2, ... FROM table_name;
将 col1
, col2
替换为查询的列名,将 table_name
替换为数据表的名称。
# 定义变量
$dbhost = "<数据库主机名>"
$dbname = "<数据库名称>"
$dbuser = "<数据库用户名>"
$dbpassword = "<数据库密码>"
$query = "<SQL 查询语句>"
$csv = "<CSV 文件路径>"
# 执行查询
& 'path\to\psql.exe' -h $dbhost -d $dbname -U $dbuser -P $dbpassword -c "$query" -F "," -o $csv
# 将结果保存到文件
cat $csv | out-file $csv
将 path\to\psql.exe
替换为 psql.exe
文件的路径,将其他变量替换为相应的数据库连接信息、SQL 查询语句和 CSV 文件路径。
Task Scheduler
,点击 Create Task
。General
标签页中,输入任务名称和描述,选择 Run whether user is logged on or not
选项,并勾选 Run with highest privileges
复选框。Triggers
标签页中,点击 New
,选择计划任务执行的时间和间隔。Actions
标签页中,点击 New
,选择 Start a program
操作,并输入 PowerShell 脚本的路径。Conditions
标签页中,根据需要勾选特定的条件。OK
完成创建。通过这个自动化脚本,你可以在 Windows 上自动导出 PostgreSQL 数据库查询结果为 CSV 文件,轻松地实现数据备份和数据转移。