📜  Windows 上的自动 psql csv 导出脚本 - SQL (1)

📅  最后修改于: 2023-12-03 15:05:57.451000             🧑  作者: Mango

Windows 上的自动 psql csv 导出脚本

如果你是一名 PostgreSQL 数据库开发者,你可能会经常需要将一些查询结果导出为 CSV 格式的文件。但是,每次都手动执行导出命令是非常麻烦的。如果你使用 PowerShell 脚本,那么可以自动化这一过程,并将其与计划任务结合起来。

实现思路
  1. 使用 psql 命令执行查询,生成 CSV 文件。
  2. 使用 out-file 命令将查询结果保存到文件中。
  3. 使用 Task Scheduler 计划任务在每天特定的时间自动执行脚本。
实现步骤
1. 创建 SQL 查询脚本
SELECT col1, col2, ... FROM table_name;

col1, col2 替换为查询的列名,将 table_name 替换为数据表的名称。

2. 编写 PowerShell 脚本
# 定义变量
$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 文件路径。

3. 创建计划任务
  1. 打开 Task Scheduler,点击 Create Task
  2. General 标签页中,输入任务名称和描述,选择 Run whether user is logged on or not 选项,并勾选 Run with highest privileges 复选框。
  3. Triggers 标签页中,点击 New,选择计划任务执行的时间和间隔。
  4. Actions 标签页中,点击 New,选择 Start a program 操作,并输入 PowerShell 脚本的路径。
  5. Conditions 标签页中,根据需要勾选特定的条件。
  6. 点击 OK 完成创建。
总结

通过这个自动化脚本,你可以在 Windows 上自动导出 PostgreSQL 数据库查询结果为 CSV 文件,轻松地实现数据备份和数据转移。