Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL中是否有方法将目录中包含的所有.csv导入我的postgres表?(视窗操作系统)_Sql_Windows_Postgresql_Batch File - Fatal编程技术网

SQL中是否有方法将目录中包含的所有.csv导入我的postgres表?(视窗操作系统)

SQL中是否有方法将目录中包含的所有.csv导入我的postgres表?(视窗操作系统),sql,windows,postgresql,batch-file,Sql,Windows,Postgresql,Batch File,SQL中是否有方法将目录中包含的所有csv导入我的postgres表 谢谢您的帮助。这根本不是PostgreSQL特有的。您需要使用循环对每个文件调用一次psql,为每个输入文件生成包含\include命令的主文件,或者连接所有输入文件,然后运行它们 所有这些任务都是通过操作系统命令提示符工具完成的,而不是PostgreSQL 要连接文件并运行结果,请执行以下操作: type *.sql | psql 要使用cmd.exe在它们上面循环,循环语法惊人地丑陋(未经测试,有关详细信息,请参阅和):

SQL中是否有方法将目录中包含的所有csv导入我的postgres表


谢谢您的帮助。

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

所有这些任务都是通过操作系统命令提示符工具完成的,而不是PostgreSQL

要连接文件并运行结果,请执行以下操作:

type *.sql | psql
要使用
cmd.exe
在它们上面循环,循环语法惊人地丑陋(未经测试,有关详细信息,请参阅和):

我相信第三条路也是可能的。这可能会起作用(相当于在unix设备上的真实shell中起作用),但未经测试,因为我手头没有方便的Windows:

FOR %%f IN (*.sql) DO (
  echo "\include %%~nf"
) | psql
据我所知,这些都不能保证文件以任何特定的顺序运行。您需要在Windows shell上查找文档

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


无论哪种方式,所有文件都必须具有系统默认的1字节文本编码,或者必须包含显式的
SET client\u encoding=…
语句。

可能重复的问题这不是很有帮助的将文件合并为一个,然后导入。对于没有标题的文件,请在cmd:
copy*.csv all.txt
中运行此命令,这通常是您使用的SQL客户端的功能,而不是数据库服务器的功能。非常感谢Craig!
FOR %%f IN (*.sql) DO (
  echo "\include %%~nf"
) | psql