gpt4 book ai didi

sql - SQL 中有没有一种方法可以将目录中包含的所有 .csv 导入到我的 postgres 表中? (窗口操作系统)

转载 作者:行者123 更新时间:2023-11-29 13:31:44 25 4
gpt4 key购买 nike

SQL 中有没有一种方法可以将目录中包含的所有 csv 导入到我的 postgres 表中?

感谢您的帮助。

最佳答案

这根本不是 PostgreSQL 特有的。您需要使用循环为每个文件调用一次 psql,为每个输入文件生成一个包含 \include 命令的主文件,或者连接所有输入文件然后运行他们。

所有这些任务都是通过操作系统命令提示工具完成的,与 PostgreSQL 无关。

连接文件并运行结果:

type *.sql | psql

要使用 cmd.exe 令人惊讶的、极其丑陋的 for 循环语法循环遍历它们(未经测试,请参阅 How to loop through files matching wildcard in batch fileIterate all files in a directory using a 'for' loop 了解详细信息):

FOR %%f IN (*.sql) DO (
echo %%~nf
psql -f %%~nf
)

我相信第三种方式也是可行的。这可能有效(等价物在 unix 机器上的真实 shell 中有效)但未经测试,因为我手头没有方便的 Windows:

FOR %%f IN (*.sql) DO (
echo "\include %%~nf"
) | psql

据我所知,这些都不能保证文件以任何特定顺序运行。您需要查找有关 Windows shell 的文档。

就我个人而言,我建议在 Powershell、Perl 或其他比 cmd.exe 批处理语言更简单的脚本语言中执行此类操作。

无论哪种方式,所有文件都必须具有系统默认的 1 字节文本编码,或者必须包含明确的 SET client_encoding= ... 语句。

关于sql - SQL 中有没有一种方法可以将目录中包含的所有 .csv 导入到我的 postgres 表中? (窗口操作系统),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21648061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com