Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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 选项的好处\复制和复制不同的客户端和服务器_Sql_Postgresql - Fatal编程技术网

Sql 选项的好处\复制和复制不同的客户端和服务器

Sql 选项的好处\复制和复制不同的客户端和服务器,sql,postgresql,Sql,Postgresql,我尝试将csv数据复制到具有 #+begin_src sql :engine postgresql :dbuser postgres :dbpassword 1618 :database analysis COPY us_counties_2010 FROM 'data/us_counties_2010.csv' WITH (FORMAT CSV, HEADER); #+end_src 它报告错误 psql:/tmp/babel-x3dXSm/sql-in-zo3MDm:3: ERROR:

我尝试将csv数据复制到具有

#+begin_src sql :engine postgresql :dbuser postgres  :dbpassword 1618 :database analysis
COPY us_counties_2010
FROM 'data/us_counties_2010.csv'
WITH (FORMAT CSV, HEADER);
#+end_src
它报告错误

psql:/tmp/babel-x3dXSm/sql-in-zo3MDm:3: ERROR:  could not open file "data/us_counties_2010.csv" for reading: No such file or directory
HINT:  COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \copy.
按照指示,我把副本换成了副本,它就工作了

#+begin_src sql :engine postgresql :dbuser postgres  :dbpassword 1618 :database analysis
\copy us_counties_2010 FROM 'data/us_counties_2010.csv' WITH (FORMAT CSV, HEADER);
#+end_src

#+RESULTS:
| COPY 3143 |
|-----------|

我很好奇发明两个选项的好处是什么
copy
和'copy',哪种客户端和服务器不同

copy
在服务器端工作,因此文件
xxx.csv
应该在服务器中


\copy
是一个在客户端工作的psql命令,因此文件
xxx.csv
位于客户端。
psql
读取文件并在内部调用stdin的
副本。

copy
在服务器端工作,因此文件
xxx.csv
应该在服务器中


\copy
是一个在客户端工作的psql命令,因此文件
xxx.csv
位于客户端。
psql
读取文件并在内部调用stdin的
副本。

\copy
仅存在于“psql”中,它是一个用于连接到PostgreSQL的流行命令行程序,但远不是唯一用于连接到PostgreSQL的程序
COPY
是PostgreSQL本身的一个命令,因此可供所有客户端使用
\copy
是在
copy
之上实现的,因此没有
copy
就没有
\copy


许多其他客户端都有自己的实现类似于
\copy

\copy
的方法,它只存在于“psql”中,psql是一个用于连接到PostgreSQL的流行命令行程序,但远不是唯一用于连接到PostgreSQL的程序
COPY
是PostgreSQL本身的一个命令,因此可供所有客户端使用
\copy
是在
copy
之上实现的,因此没有
copy
就没有
\copy


许多其他客户端都有自己的实现方式,类似于
\copy

如何在服务器上定位数据库位置?
从pg_设置中选择*,其中name='data_directory'。您可以将文件放在pg有权读取的任何目录中。我经常使用“/tmp/xxx”。我更喜欢
\copy
。如何在服务器上定位数据库位置?
从pg_设置中选择*,其中name='data_directory'。您可以将文件放在pg有权读取的任何目录中。我经常使用“/tmp/xxx”。我更喜欢
\copy