由 John Doe 一月 8, 2026
Oracle 在最新的 AI 数据库支持了表结构注解。注解(Annotations)本质上是轻量级的声明式标记,以键值对或独立键的形式存在,存储在数据字典中。这对于开发者使用自然语言生成正确的 SQL 查询具有相当重要的意义。

那么,在 PostgreSQL 中,如何实现同样的功能呢?
若要为 PostgreSQL 中的列添加注释(用于设计文档编写或 SQL 脚本生成),需使用COMMENT ON COLUMN语句。
SQL 语法
为列添加注释的基本语法如下:
COMMENT ON COLUMN table_name.column_name IS 'text';
示例
以下是该命令的一些使用示例:
为指定表中的列添加注释:
COMMENT ON COLUMN opportunities.deleted_at IS '记录商机的逻辑删除时间(非物理删除),查询时应经常过滤该字段';
为带模式限定符的表中的列添加注释:
COMMENT ON COLUMN public.employees.employee_id IS '每位员工的唯一标识符';
移除列的注释:
COMMENT ON COLUMN table_name.column_name IS NULL;
提取注释(用于 SQL 生成)
注释存储在 PostgreSQL 数据字典中,可通过查询系统表的 SQL 语句检索,这在生成文档或表结构迁移脚本时非常实用。
你可以查询pg_description和information_schema.columns视图,以编程方式提取注释:
SELECT
cols.column_name,
pg_catalog.col_description(c.oid, cols.ordinal_position::int) AS column_comment
FROM
information_schema.columns cols
JOIN
pg_catalog.pg_class c ON c.relname = cols.table_name
WHERE
cols.table_catalog = 'your_database' AND -- 替换为你的数据库名
cols.table_name = 'your_table' AND -- 替换为你的表名
cols.table_schema = 'your_schema'; -- 替换为你的模式名
更多细节可参考 PostgreSQL 官方文档。