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

使用postgresql-anonymizer的anonymize_table函数报错:column "Users" does not exist

解决postgresql-anonymizer调用anon.anonymize_table报错“column 'Users' does not exist”的问题

你遇到的问题核心是PostgreSQL的标识符大小写规则加上函数参数解析细节导致的。

原因分析

PostgreSQL默认会把不带双引号的标识符(比如表名、列名)自动转成小写。你用/dt看到的是public | Users | table,说明这个表是用双引号创建的(比如CREATE TABLE "Users" (...)),属于大小写敏感的表名。但你调用anon.anonymize_table('Users')时,函数内部解析这个字符串时,会把它当作未加双引号的标识符,自动转成users,而你数据库里根本没有小写的users表,所以报错说“column 'Users' does not exist”(这里的错误提示有点误导,实际是找不到对应表)。

解决方法

试试下面几种方式:

  1. 传递带双引号的完整标识符字符串
    把表名用双引号包裹,同时带上schema(避免默认schema不一致的问题),作为参数传给函数:
SELECT anon.anonymize_table('"public"."Users"');
  1. 分开传入schema和表名参数
    如果你的postgresql-anonymizer版本支持双参数的anonymize_table(多数新版本都支持),直接拆分schema和表名传递,这样更清晰:
SELECT anon.anonymize_table('public', 'Users');
  1. 先验证表的可访问性
    先执行SELECT * FROM "Users";,如果能正常返回数据,说明确实是大小写引用的问题,用上面两种方法就能解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 23:28:13