更新时间:2025-09-11 GMT+08:00
COMMENT
功能描述
定义或修改一个对象的注释。
注意事项
- 每个对象只存储一条注释,因此要修改一个注释,对同一个对象发出一条新的COMMENT命令即可。要删除注释,在文本字符串的位置写上NULL即可。当删除对象时,注释自动被删除。
- 目前注释浏览没有安全机制,任何连接到某数据库上的用户都可以看到所有该数据库对象的注释。共享对象(比如数据库、角色、表空间)的注释是全局存储的,连接到任何数据库的任何用户都可以看到它们。因此,不要在注释里存放与安全有关的敏感信息。
- 对大多数对象,只有对象的所有者或者被授予了对象COMMENT权限的用户可以设置注释,系统管理员默认拥有该权限。
- 角色没有所有者,所以COMMENT ON ROLE命令仅可以由系统管理员对系统管理员角色执行,有CREATE ROLE权限的角色也可以为非系统管理员角色设置注释。系统管理员可以对所有对象进行注释。
语法格式
COMMENT ON
{ AGGREGATE func_name ([arg [, ...]])|
COLLATION object_name |
COLUMN { table_name.column_name | view_name.column_name } |
CONSTRAINT constraint_name ON table_name |
DATABASE object_name |
FUNCTION func_name ([arg [, ...]])|
INDEX object_name |
SEQUENCE seq_name |
USER user_name |
ROLE object_name |
SCHEMA object_name |
TABLE object_name |
TABLESPACE object_name |
VIEW object_name |
}
IS 'text';
参数说明
- func_name
函数名。
- arg
函数变量。
- user_name
取值范围:已存在的用户名,用户名要求详见•user_name。
- object_name
对象名。
- table_name.column_name
view_name.column_name
列名称。前缀可加表名称或者视图名称。
- constraint_name
表约束的名称。
- table_name
表的名称。
- text
注释。
示例
--建表。
m_db=# CREATE TABLE emp(
empno varchar(7),
ename varchar(50),
job varchar(50),
mgr varchar(7),
deptno int
);
--表添加注释。
m_db=# COMMENT ON TABLE emp IS '部门表';
--字段添加注释。
m_db=# COMMENT ON COLUMN emp.empno IS '员工编号';
m_db=# COMMENT ON COLUMN emp.ename IS '员工姓名';
m_db=# COMMENT ON COLUMN emp.job IS '职务';
m_db=# COMMENT ON COLUMN emp.mgr IS '上司编号';
m_db=# COMMENT ON COLUMN emp.deptno IS '部门编号';
--查看表的注释。
m_db=# \d+
Schema | Name | Type | Owner | Size | Storage | Description
--------+-------------+----------+-------+------------+----------------------------------+-------------
public | emp | table | omm | 0 bytes | {orientation=row,compression=no} | 部门表
--查看字段注释。
m_db=# \d+ emp
Table "public.emp"
Column | Type | Modifiers | Storage | Stats target | Description
--------+-----------------------+-----------+----------+--------------+-------------
empno | character varying(7) | | extended | | 员工编号
ename | character varying(50) | | extended | | 员工姓名
job | character varying(50) | | extended | | 职务
mgr | character varying(7) | | extended | | 上司编号
deptno | integer | | plain | | 部门编号
Has OIDs: no
Options: orientation=row, compression=no, storage_type=USTORE
--删除表emp。
m_db=# DROP TABLE emp;
父主题: C