我正在尝试对作为“dam_vector”模式一部分的表执行简单的选择语句。我得到的错误是:
psycopg2.ProgrammingError:关系“dam_vector.parcels_full”不存在第1行:SELECT * FROM“dam_vector.parcels_full”
我无法弄清楚这一点,并且知道我遗漏了一些明显的东西。您能提供的任何帮助都会很棒。
这是我正在使用的代码。db 是成功连接到数据库的连接字符串。
cur = db.cursor()
query = 'SELECT * FROM "dam_vector.parcels_full"'
cur.execute(query)
results = cur.fetchall()
Run Code Online (Sandbox Code Playgroud)
当那失败了,在我对谷歌做了一些研究之后,我尝试了这个。同样的错误。
cur.execute("SET search_path TO dam_vector,public")
db.commit()
cur = db.cursor()
query = 'SELECT * FROM "parcels_full"'
cur.execute(query)
results = cur.fetchall()
Run Code Online (Sandbox Code Playgroud)
小智 5
双引号使它们中的任何内容成为标识符,因此查询
SELECT * FROM "dam_vector.parcels_full";
Run Code Online (Sandbox Code Playgroud)
dam_vector.parcels_full从 schama public(或搜索路径中的任何内容)点击表(句点解释为表名的一部分)。
正如亚当所说,你不需要没有一些特殊字符的名字的引号。尝试:
SELECT * FROM dam_vector.parcels_full;
Run Code Online (Sandbox Code Playgroud)
如果你真的想使用双引号,去:
SELECT * FROM "dam_vector"."parcels_full";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10882 次 |
| 最近记录: |