我有一个Python模块,可以将表格中的数据复制到文件中。我使用PostgreSQL作为数据库服务器。COPY是用于执行上述操作的命令。
然而,在博客(http://grokbase.com/t/postgresql/pgsql-general/058tagtped/about-error-must-be-superuser-to-copy-to-or-from-a-file)中指出,您可以在客户端的'psql'中使用\copy,但出于安全原因,您必须是超级用户才能在服务器端执行COPY。因此,我使用了\copy命令。当我尝试执行下面的方法时,会出现错误:
然而,在博客(http://grokbase.com/t/postgresql/pgsql-general/058tagtped/about-error-must-be-superuser-to-copy-to-or-from-a-file)中指出,您可以在客户端的'psql'中使用\copy,但出于安全原因,您必须是超级用户才能在服务器端执行COPY。因此,我使用了\copy命令。当我尝试执行下面的方法时,会出现错误:
我找不到它为什么会抛出错误。有人能帮帮我吗?psycopg2.ProgrammingError: syntax error at or near "\" LINE 1: \copy
def process():
query="\copy %s TO %s"%('test_table', 'test_file.txt')
@env.with_transaction()
def do_execute(db):
cursor = db.cursor()
cursor.execute(query)
do_execute是一个数据库封装器,它创建连接并执行查询。
\copy
是仅被psql
命令行工具识别的命令。它不是有效的SQL语句。该命令行工具很可能使用多个SQL构造将数据加载后导出到文本文件中。 - Martijn Pieters.copy_to
):http://initd.org/psycopg/docs/cursor.html#cursor.copy_from - freakish