详细注释表结构,让 PostgreSQL 更加智能化!

John Doe 一月 8, 2026

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

image

那么,在 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_descriptioninformation_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 官方文档