Python操作PostgreSQL提示undefinedColumn但列实际存在的问题排查
问题描述
我通过Python从PostgreSQL数据库获取数据表时,系统持续提示列不存在,但该列实际存在。我执行的代码是:
pd.read_sql_query("select * from lines where cust_id = 22120", con = engine)
需要排查问题原因并解决。
排查及解决方法
- 核对列名大小写:PostgreSQL默认会把未加双引号的标识符转为小写存储,但如果创建表时用双引号定义了列名(例如
"Cust_ID"),查询时必须用双引号包裹列名才能匹配。修改SQL语句为:
可对照数据表确认列名的实际大小写格式。select * from lines where "cust_id" = 22120 - 指定表的完整schema路径:如果
lines表不在数据库默认的schema(通常是public)下,需要在表名前加上schema名称,比如:select * from public.lines where cust_id = 22120 - 确认表名拼写:检查
lines是否为正确的表名,避免拼写错误(比如误写为line)。 - 验证数据库连接:确认
engine连接的是目标数据库,避免连接到其他环境(如测试库)导致表结构不匹配。 - 直接在数据库客户端测试:用psql、pgAdmin等工具执行相同SQL语句,排查是否为Python代码层面的问题。
内容的提问来源于stack exchange,提问作者Zhenyi Han
相关产品推荐
相关产品推荐

