You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用psycopg2查询PostgreSQL已存在的MddPublisher表提示不存在如何解决

问题根因

PostgreSQL 默认对未加双引号的SQL标识符执行自动小写转换,仅当标识符被双引号包裹时才会保留大小写。
你查询时写的MddPublisher未加双引号,会被数据库自动转换为mddpublisher执行,和你实际创建的驼峰命名表名不匹配,因此报relation "mddpublisher" does not exist错误。你查询information_schema得到的是表的真实命名,因此可以查到MddPublisher存在。

修复方案

有两种可行修复方式:

  • 方式一:查询时给表名加双引号保留大小写,无需修改表结构。修正后的完整代码如下:
import psycopg2

def db():
    conn = psycopg2.connect(
        "dbname=mydb user=postgres password=****** host=*.*.*.*")
    cur = conn.cursor()
    # 表名用双引号包裹,保留驼峰大小写
    cur.execute('SELECT * FROM "MddPublisher"')
    query_results = cur.fetchall()
    print(query_results)
    # 关闭游标和连接,避免资源泄漏
    cur.close()
    conn.close()

db()
  • 方式二:如果允许修改表结构,建议将表名重命名为符合PostgreSQL命名规范的全小写下划线格式mdd_publisher,后续所有查询无需额外加双引号,可彻底避免大小写相关的问题。

内容的提问来源于stack exchange,提问作者wdafoe666

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 11:24:07