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

使用psycopg2创建的Redshift表在查询编辑器中不存在是什么原因

问题可能原因及排查方向

  • Schema搜索路径不匹配
    Redshift默认的标识符搜索路径为"$user", public,你代码中创建表时未指定Schema,表会默认创建到当前用户awsuser对应的同名Schema(如果存在)下,即awsuser.test_data。如果你的Redshift查询编辑器使用的用户搜索路径未包含awsuser Schema,或者你直接查询时未写全限定名,就会返回表不存在的错误。可以分别在代码连接会话和查询编辑器中执行show search_path对比路径配置,也可以执行以下SQL确认表实际所在的Schema:
    select table_schema, table_name from information_schema.tables where table_name = 'test_data';
    
    验证时可尝试写全限定名查询:select * from awsuser.test_data。
  • 数据库/集群连接不一致
    你的代码指定连接的数据库是dev,集群地址为xxxx.us-east-1.redshift.amazonaws.com,请确认查询编辑器中连接的是同一个Redshift集群,且当前使用的数据库为dev,如果连错集群或者数据库,自然无法找到对应表。
  • 权限不足导致的隐藏提示
    如果查询编辑器使用的登录用户和代码中的awsuser不是同一个用户,且该用户没有test_data表的访问权限,Redshift为了安全会隐藏表存在的信息,返回表不存在的错误而非权限不足提示,可以尝试给相应用户授权后再验证。
  • 标识符大小写问题
    Redshift默认会将未加双引号的标识符转为小写处理,如果你的查询语句中test_data加了双引号且写为大写"TEST_DATA",就会和实际存储的小写表名不匹配,导致查询失败。
  • 事务未实际生效
    虽然代码中写了conn.commit(),也打印了提交成功的日志,但可以排查代码运行时是否存在异常被静默捕获、事务实际被回滚的情况,可以在代码中执行创建表逻辑后,新增一段查询当前连接下表是否存在的逻辑做二次校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:54:07