我需要使用Python脚本将PostgreSQL数据库中的某些行导出到.csv文件:
Syntax error at or near «\»
LINE 1: \copy (SELECT * FROM TABLE WHERE month=6) TO '...
但是当我运行脚本时,我得到了这个:
<ng-template ngbTabContent> {{item}}</ng-template>
有谁知道什么是错的或给我一个提示?
答案 0 :(得分:6)
\copy
不是SQL命令,它是特定于Postgres终端客户端 psql 的命令,不能在此上下文中使用。
使用copy_expert(sql, file, size=8192)
代替,例如:
sql = "COPY (SELECT * FROM a_table WHERE month=6) TO STDOUT WITH CSV DELIMITER ';'"
with open("/mnt/results/month/table.csv", "w") as file:
cur.copy_expert(sql, file)
答案 1 :(得分:1)
\COPY
是psql command(基于客户端),因此不是有效的SQL命令。只需使用COPY
(不使用反斜杠\
)即可尝试相同的操作。
如果您想直接在客户端输出文件,您可能想要使用COPY
的{{3}},否则它将在数据库服务器上创建,这是一个奢侈< / em>不是每个人都有。
答案 2 :(得分:0)
是的,所有与 \COPY
相关的语句都是正确的,作为 SQL 命令。
如果您想尝试与问题中所述相同的方法,则可以将其作为 python 脚本中的 shell 命令进行尝试。
例如:
import os
cmd1 = " Your SQL to csv Command"
os.system(cmd1)