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

PostgreSQL如何使用变量或计算表达式添加动态表注释?

问题原因

PostgreSQL 的 COMMENT 语法要求 IS 后只能跟字符串常量,不支持直接传入表达式、函数返回值或者 PL/pgSQL 变量,所以你之前的两种写法都会报错。

可行的纯SQL实现方案

通过 DO 块结合动态 SQL 执行即可,不需要额外创建自定义函数,属于PostgreSQL原生支持的纯SQL写法:

DO $$
BEGIN
  EXECUTE format(
    'COMMENT ON TABLE my_data IS %L',
    'Last update: ' || CURRENT_DATE::text
  );
END $$;

上面代码里 format 函数的 %L 占位符会自动将传入的内容转义为合法的字符串字面量,避免特殊字符导致的语法错误或者注入风险。

验证结果

执行完上面的语句后,可以用以下查询查看注释是否生效:

SELECT obj_description('my_data'::regclass, 'pg_class') AS table_comment;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:09:02