Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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
Postgresql复制命令问题_Postgresql - Fatal编程技术网

Postgresql复制命令问题

Postgresql复制命令问题,postgresql,Postgresql,这是命令行,看起来很简单,我已经阅读了这个链接()上的文档,检查了我的postgresql版本,当我运行代码时,它给出了这个错误 copy (select * from TABLE_NAME) TO '/home/name/teste.csv'; 文件在那里,用“pwd”检查路径,一切似乎都正常,最后还用“with CSV”尝试了代码,什么都没有。 有人看到我没有的东西吗?要使此命令起作用,数据库服务器上必须有/home/name,操作系统用户postgres必须具有对该目录的写入权限。文件t

这是命令行,看起来很简单,我已经阅读了这个链接()上的文档,检查了我的postgresql版本,当我运行代码时,它给出了这个错误

copy (select * from TABLE_NAME) TO '/home/name/teste.csv';
文件在那里,用“pwd”检查路径,一切似乎都正常,最后还用“with CSV”尝试了代码,什么都没有。
有人看到我没有的东西吗?

要使此命令起作用,数据库服务器上必须有
/home/name
,操作系统用户
postgres
必须具有对该目录的写入权限。

文件
teste.csv
需要放在
数据库服务器
主目录/name/
中,而不是放在客户机中。数据库用户还需要具有访问该文件所需的权限

在不将文件移动到数据库服务器的情况下执行此操作的一个选项是从客户端控制台使用的
stdin

ERROR:  could not open file "/home/name/teste.csv" for writing: No such file or directory

********** Error **********

ERROR: could not open file "/home/name/teste.csv" for writing: No such file or directory
SQL state: 58P01

腹肌

该路径需要存在于服务器上,运行服务器的操作系统用户需要具有写入该路径的权限。csv文件具有写入权限,postgresql(在我的情况下为pgadmin)pgadmin也在客户端上运行,而不是在服务器上。所以给予“pgAdmin”特权(不管这意味着什么)是不够的。
$ cat teste.csv | psql yourdb -c "COPY tabela_teste FROM STDIN;"