PostgreSQL执行UPDATE语句报错ERROR: relation "a" does not exist 求助
PostgreSQL UPDATE语句relation "a"不存在错误解决方案
错误根因
- PostgreSQL的SQL解析顺序为先解析UPDATE子句,再解析FROM子句,你原语句中别名
a是在FROM子句中才定义的,解析到UPDATE a时系统还无法识别a的指代关系,因此触发不存在报错。 - 额外的语法冗余问题:你在
FROM子句中重复声明了要更新的表"NashvilleHousingData" a,属于不必要的重复引用。
修复后的最简可用SQL
UPDATE "NashvilleHousingData" a SET "PropertyAddress" = COALESCE(a."PropertyAddress", b."PropertyAddress") FROM "NashvilleHousingData" b WHERE a."ParcelID" = b."ParcelID" AND a."UniqueID" <> b."UniqueID" AND a."PropertyAddress" IS NULL;
校验注意事项
- 确认你的表所属schema,若不在默认public schema下,给所有表名补充前缀即可,例如
your_schema."NashvilleHousingData" - 双引号包裹的标识符严格区分大小写,请确保你的实际表名、字段名的大小写与代码中完全匹配,避免额外的不存在报错。
内容的提问来源于stack exchange,提问作者eliz
相关产品推荐
相关产品推荐

