psql如何批量执行某个目录及子目录下的所有sql
时间: 2024-09-28 10:17:52 浏览: 65
在 PostgreSQL 中,如果你想通过 `psql` 批量执行某个目录及其子目录下的所有 `.sql` 文件,可以借助批处理脚本来完成这个任务。这里提供一种在 Windows 上使用 PowerShell 的方法:
1. **打开 PowerShell**:
双击开始菜单,搜索“PowerShell”并打开。
2. **编写并保存脚本**:
创建一个新文件,例如 `execute_sql_files.ps1`,然后复制以下内容:
```powershell
$rootDirectory = 'C:\path\to\your\directory' # 替换为你需要处理的目录
Get-ChildItem -Path $rootDirectory -Filter *.sql -Recurse | ForEach-Object {
& "C:\Program Files\PostgreSQL\9.6\bin\psql.exe" -U your_username -d your_database_name -f $_.FullName
}
```
这里的 `your_username` 和 `your_database_name` 分别替换为你的 PostgreSQL 用户名和数据库名。
3. **运行脚本**:
- 保存文件后,在 PowerShell 中进入该文件所在的目录:
```powershell
Set-Location -Path $PSScriptRoot
```
- 接着,运行脚本:
```powershell
.\execute_sql_files.ps1
```
这会递归查找指定目录及其子目录下的所有 `.sql` 文件,并逐个执行它们。
注意:确保 `psql.exe` 的路径是对的,因为脚本引用的是 `psql` 的绝对路径。如果路径有误,你需要修改成实际的路径。
阅读全文
相关推荐















