**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
5天前关闭。
截至5天前,社区正在审查是否重新讨论此问题。
Improve this question
在我的项目中,我最初使用pg
库中的一个新池启动了PG数据库的一个示例。随后,我还想将CSV数据上载到该数据库中的一个现有表中,但我相信我当前的pg查询会导致一些问题,因为在开始处使用了反斜杠()。
const pool = new Pool({
database: 'users'
});
pool.query(`\COPY users (firstName, lastName, age) FROM '/Users/Jason/project/server/sample.csv' DELIMITER ',' CSV HEADER`)
我收到的错误如下:
/Users/Jason/project/server/node_modules/pg-protocol/dist/parser.js:287
const message = name === 'notice' ? new messages_1.NoticeMessage(length, messageValue) : new messages_1.DatabaseError(messageValue, length, name);
如果我在终端和当前数据库中提交相同的查询,它会完全正确地上传数据,没有任何问题。为什么我启动服务器时无法上传项目中的csv数据?
1条答案
按热度按时间irtuqstp1#
\COPY
与COPY
不是一回事:\COPY
或只是\copy
是psql
自己的、内部的、专有的元命令,而不是实际的SQL语句。PostgreSQL不理解psql
元命令 raw:psql
首先将它们转换为普通SQL命令,然后将它们发送到数据库。一些元命令转换为多个查询,其输出是一系列查询的组合输出的结果。如果您在启动psql时添加--echo-queries
或-e
选项,则可以看到它们。COPY
(不带反斜杠)是一个SQL命令,您可能应该在应用中使用它。您可能尝试使用
\copy
而不是copy
来指向客户机系统本地的源文件,而该文件无法从数据库位置获得,在这种情况下,您可能要查找pg-copy-streams
。