【发布时间】:2018-06-05 09:45:47
【问题描述】:
我想用psycopg2的sql子模块写干净的动态SQL:
from psycopg2 import sql
...
cursor.execute(sql.SQL("SELECT * FROM {}").format(sql.Identifier('myschema.mytable'))
这将创建以下查询:
SELECT * FROM "myschema.mytable"
这里我得到一个Relation "myschema.mytable" not found. 异常。
如何正确处理架构名称?以下语句可行,但我如何使用 psycopg2 创建它们?
SELECT * FROM myschema.mytable
SELECT * FROM myschema."mytable"
SELECT * FROM "myschema"."mytable"
编辑:阐明架构前缀
【问题讨论】:
-
我刚刚在 DBeaver 中尝试过:
SELECT * FROM mytable;工作正常,而SELECT * FROM "mytable";出现错误。我必须添加 mytable 包含架构前缀,这可能会导致问题。
标签: python postgresql psycopg2