我的COPY功能是:COPY NEWTABLE FROM './myfile.csv' csv HEADER;
但是当我尝试这样的事情时,它会告诉我No such file or directory
。仅当我使用绝对路径时,它才起作用,但是出于我正在做的目的,我需要使用某种相对路径。
答案 0 :(得分:0)
在运行cd
命令之前,您始终可以对脚本中的相对路径执行COPY
。
不知道是否有任何方法可以使COPY命令使用相对路径。
答案 1 :(得分:0)
COPY
在服务器后端运行,这意味着它的pwd通常是群集的datadir
-它尝试查找的任何相对路径都将相对于该位置。参见the docs:
将相对于服务器进程的工作目录(通常是集群的数据目录)而不是客户端的工作目录来解释路径。
如果您使用的是psql,\copy
将使用相对路径来做正确的事(它将使用您的pwd,而不是服务器后端的)
答案 2 :(得分:0)
在linux中,我使用psql:
\set localpath `pwd`'/myfile.csv'
COPY NEWTABLE FROM :'localpath' csv HEADER;