定义或删除一个对象的备注
概要
COMMENT ON
{ TABLE object_name |
COLUMN table_name.column_name |
AGGREGATE agg_name (agg_type [, ...]) |
CAST (sourcetype AS targettype) |
CONSTRAINT constraint_name ON table_name |
CONVERSION object_name |
DATABASE object_name |
DOMAIN object_name |
FILESPACE object_name |
FUNCTION func_name ([[argmode] [argname] argtype [, ...]]) |
INDEX object_name |
LARGE OBJECT large_object_oid |
OPERATOR op (leftoperand_type, rightoperand_type) |
OPERATOR CLASS object_name USING index_method |
[PROCEDURAL] LANGUAGE object_name |
RESOURCE QUEUE object_name |
ROLE object_name |
RULE rule_name ON table_name |
SCHEMA object_name |
SEQUENCE object_name |
TABLESPACE object_name |
TRIGGER trigger_name ON table_name |
TYPE object_name |
VIEW object_name }
IS 'text'
描述
COMMENT命令会存储一个数据库对象的注释。要修改注释,则对这个对象调用一个新的COMMENT命令。每个对象只会保存一个注释。如需要移除注释,则用NULL来替代字符串。当对象被删除时,注释就会自动删除。
利用psql命令 \dd, \d+,\l+ 可以轻松的获取到响应的注释。其他的用户界面可以通过内置的函数obj_description,col_description和shobj_description来获取注释。
注意:
目前注释没有任何安全机制:连接到数据库,可以看到在该数据库中的对象所有的备注(尽管只有超级用户可以改变的备注,他们不拥有的对象)的任何用户。共享对象如数据库,角色,和表注释全局存储并连接到任何数据库中的任何用户可以看到共享对象的所有注释。所以,不要把注释中放入安全关键信息。
示例
Attach a comment to the table mytabie:
COMMENT ONTABLE mytabie IS 'This is my table.';
Remove itagain:
COMMENT ONTABLE mytable IS NULL;
兼容性
There is no comment statement in theSQL standard.