首页 > 解决方案 > “psql”中的语法错误,命令未执行

问题描述

我正在使用 timescaledb。

我正在关注的文档是使用 PostgreSQL 的 COPY将数据从 csv 文件迁移到 timescale db。csv 文件的名称是test.csv

我创建了名为test的数据库,表的名称是test1。根据 timescaledb 文档,表是一个超表。

表的结构和 csv 文件的结构是相同的。

-在 cmd 中执行以下命令时,除了在控制台命令中添加符号外,我没有得到任何结果test-#

psql -d test -c "\COPY test1 FROM C:\Users\DEGEJOS\Downloads\test.csv CSV"

控制台无响应

如果我;在命令之后 放置,psql -d test -c "\COPY test1 FROM C:\Users\DEGEJOS\Downloads\test.csv CSV"; 我会在第 1 行收到语法错误。

语法错误

如何解决此错误并将数据从 csv 文件插入到 db。?

标签: postgresqlcsvsyntax-errorpsqltimescaledb

解决方案


您正在尝试psql使用\COPY内部psql会话运行,因此在第二次调用中出现错误,因为psqlSQL 中不存在关键字。psql是一个可执行文件。

要遵循 Timescale 的说明,您需要直接在 CMD 中调用该命令。即,调用:

psql -d test -c "\COPY test1 FROM C:\Users\DEGEJOS\Downloads\test.csv CSV"

如果您在C:\Users\DEGEJOS屏幕截图中,它将如下所示:

C:\Users\DEGEJOS\psql -d test -c "\COPY test1 FROM C:\Users\DEGEJOS\Downloads\test.csv CSV"

推荐阅读