我正在使用Postgresql 9.5。在我的代码中,我需要创建一个管道来提取数据并插入到数据库中。要使用psql测试管道,我在数据库中创建了一个表:employee(name,dept,jobtitle),并使用了命令:
echo -e "Paul,IT,Manager\n\." | psql -U *** -h localhost -d *** -1f copy.sql
copy.sql的文件如下:
COPY employee (name,dept,jobtitle) from STDIN WITH(FORMAT CSV, DELIMITER ',', HEADER FALSE)
命令的结果是:
COPY 0
我想psql解析器不会识别输入中的行。是因为错误的回声输入格式?任何帮助表示赞赏。谢谢!
我还尝试使用\ copy命令从csv文件中复制。它成功了。使用的命令是
psql -U *** -h localhost -d *** -1f copy_file.sql
copy_file.sql是:
\copy employee (name,dept,jobtitle) from '/path/to/csv/file' WITH(FORMAT CSV, DELIMITER ',', HEADER FALSE)
csv文件是
Paul,IT,Manager
\.