COMMENT (original) (raw)

名前

COMMENT — オブジェクトのコメントを定義する、または変更する

概要

COMMENT ON { ACCESS METHOD objectname | AGGREGATE aggregatename ( aggregatesignature ) | CAST (sourcetype AS targettype) | COLLATION objectname | COLUMN relationname.columnname | CONSTRAINT constraintname ON tablename | CONSTRAINT constraintname ON DOMAIN domainname | CONVERSION objectname | DATABASE objectname | DOMAIN objectname | EXTENSION objectname | EVENT TRIGGER objectname | FOREIGN DATA WRAPPER objectname | FOREIGN TABLE objectname | FUNCTION functionname ( [ [ argmode ] [ argname ] argtype [, ...] ] ) | INDEX objectname | LARGE OBJECT largeobjectoid | MATERIALIZED VIEW objectname | OPERATOR operatorname (lefttype, righttype) | OPERATOR CLASS objectname USING indexmethod | OPERATOR FAMILY objectname USING indexmethod | POLICY policyname ON tablename | [ PROCEDURAL ] LANGUAGE objectname | ROLE objectname | RULE rulename ON tablename | SCHEMA objectname | SEQUENCE objectname | SERVER objectname | TABLE objectname | TABLESPACE objectname | TEXT SEARCH CONFIGURATION objectname | TEXT SEARCH DICTIONARY objectname | TEXT SEARCH PARSER objectname | TEXT SEARCH TEMPLATE objectname | TRANSFORM FOR typename LANGUAGE langname | TRIGGER triggername ON tablename | TYPE objectname | VIEW objectname } IS 'text'

ここで_aggregatesignature_は以下の通りです。

説明

COMMENTは、データベースオブジェクトに関するコメントを保存します。

各オブジェクトに保存できるコメント文字列は1つだけです。 ですので、コメントを編集するためには、同一オブジェクトに対して新しくCOMMENTコマンドを発行してください。 コメントを削除するには、テキスト文字列の部分にNULLを記述してください。 オブジェクトが削除された時、コメントは自動的に削除されます。

ほとんどの種類のオブジェクトでは、オブジェクトの所有者のみがコメントを設定することができます。 ロールには所有者がありませんので、COMMENT ON ROLEにおける規則は、スーパーユーザロールに対するコメント付けはスーパーユーザでなければならず、スーパーユーザ以外のロールに対するコメント付けはCREATEROLEを持たなければならないとなります。 同様に、アクセスメソッドには所有者がいないため、アクセスメソッドにコメントをつけるにはスーパーユーザでなければなりません。 当然ながらスーパーユーザは何にでもコメントを付けることができます。

コメントは、psqlの\d系のコマンドで表示することができます。obj_description()col_description()shobj_descriptionという名前の、psqlが使用する組み込み関数を使うように構築することで、他のユーザインタフェースを使ってコメントを取り出せるようになります (表9.67「コメント情報関数」を参照してください)。

パラメータ

objectname
relationname.columnname
aggregatename
constraintname
functionname
operatorname
policyname
rulename
triggername

コメントを付加するオブジェクトの名前です。 テーブル、集約、照合順、変換、ドメイン、外部テーブル、関数、インデックス、演算子、演算子クラス、演算子族、シーケンス、テキスト検索オブジェクト、データ型、ビューの名前は、スキーマ修飾することができます。 列にコメントを付与する場合、_relationname_はテーブル、ビュー、複合型、外部テーブルを参照するものでなければなりません。

tablename
domainname

制約、トリガー、ルール、ポリシーにコメントを作成する場合、これらのパラメータはオブジェクトが定義されているテーブルまたはドメインの名前を指定します。

sourcetype

キャストの変換元データ型の名前です。

targettype

キャストの変換先のデータ型の名前です。

argmode

関数または集約の引数のモードで、INOUTINOUTVARIADICのいずれかです。 省略時のデフォルトはINです。 関数を識別するには入力引数のみが必要ですので、COMMENTが実際にはOUT引数を無視することに注意してください。 したがって、ININOUTおよびVARIADIC引数を列挙することで十分です。

argname

関数または集約の引数の名前です。 関数の識別には引数データ型のみが必要ですので、COMMENTが実際には引数の名前を無視することに注意してください。

argtype

関数または集約の引数のデータ型です。

largeobjectoid

ラージオブジェクトのOIDです。

lefttype
righttype

演算子の引数のデータ型(スキーマ修飾も可)です。 右単項演算子、左単項演算子における存在しない引数についてはNONEと記述してください。

PROCEDURAL

これには意味はありません。

typename

変換のデータ型の名前です。

langname

変換の言語の名前です。

text

追加するコメントです。文字列リテラルとして記述します。 コメントを削除する場合はNULLを記述します。

注釈

現在、コメントの閲覧に関するセキュリティ機構は存在しません。 データベースに接続したユーザは誰でも、そのデータベース内のオブジェクトのコメントを参照することができます。 データベース、ロール、テーブル空間などの共有オブジェクトに対するコメントは大域的に格納され、クラスタ内の任意のデータベースに接続した任意のユーザが共有オブジェクトに対するコメントをすべて見ることができます。 そのため、コメントにはセキュリティ的に重大な情報を記載してはいけません。

テーブルmytableにコメントを付けます。

COMMENT ON TABLE mytable IS 'This is my table.';

先ほどのコメントを削除します。

COMMENT ON TABLE mytable IS NULL;

その他の例をいくつか示します。

COMMENT ON ACCESS METHOD rtree IS 'R-Tree access method'; COMMENT ON AGGREGATE my_aggregate (double precision) IS 'Computes sample variance'; COMMENT ON CAST (text AS int4) IS 'Allow casts from text to int4'; COMMENT ON COLLATION "fr_CA" IS 'Canadian French'; COMMENT ON COLUMN my_table.my_column IS 'Employee ID number'; COMMENT ON CONVERSION my_conv IS 'Conversion to UTF8'; COMMENT ON CONSTRAINT bar_col_cons ON bar IS 'Constrains column col'; COMMENT ON CONSTRAINT dom_col_constr ON DOMAIN dom IS 'Constrains col of domain'; COMMENT ON DATABASE my_database IS 'Development Database'; COMMENT ON DOMAIN my_domain IS 'Email Address Domain'; COMMENT ON EXTENSION hstore IS 'implements the hstore data type'; COMMENT ON FOREIGN DATA WRAPPER mywrapper IS 'my foreign data wrapper'; COMMENT ON FOREIGN TABLE my_foreign_table IS 'Employee Information in other database'; COMMENT ON FUNCTION my_function (timestamp) IS 'Returns Roman Numeral'; COMMENT ON INDEX my_index IS 'Enforces uniqueness on employee ID'; COMMENT ON LANGUAGE plpython IS 'Python support for stored procedures'; COMMENT ON LARGE OBJECT 346344 IS 'Planning document'; COMMENT ON MATERIALIZED VIEW my_matview IS 'Summary of order history'; COMMENT ON OPERATOR ^ (text, text) IS 'Performs intersection of two texts'; COMMENT ON OPERATOR - (NONE, integer) IS 'Unary minus'; COMMENT ON OPERATOR CLASS int4ops USING btree IS '4 byte integer operators for btrees'; COMMENT ON OPERATOR FAMILY integer_ops USING btree IS 'all integer operators for btrees'; COMMENT ON POLICY my_policy ON mytable IS 'Filter rows by users'; COMMENT ON ROLE my_role IS 'Administration group for finance tables'; COMMENT ON RULE my_rule ON my_table IS 'Logs updates of employee records'; COMMENT ON SCHEMA my_schema IS 'Departmental data'; COMMENT ON SEQUENCE my_sequence IS 'Used to generate primary keys'; COMMENT ON SERVER myserver IS 'my foreign server'; COMMENT ON TABLE my_schema.my_table IS 'Employee Information'; COMMENT ON TABLESPACE my_tablespace IS 'Tablespace for indexes'; COMMENT ON TEXT SEARCH CONFIGURATION my_config IS 'Special word filtering'; COMMENT ON TEXT SEARCH DICTIONARY swedish IS 'Snowball stemmer for Swedish language'; COMMENT ON TEXT SEARCH PARSER my_parser IS 'Splits text into words'; COMMENT ON TEXT SEARCH TEMPLATE snowball IS 'Snowball stemmer'; COMMENT ON TRANSFORM FOR hstore LANGUAGE plpythonu IS 'Transform between hstore and Python dict'; COMMENT ON TRIGGER my_trigger ON my_table IS 'Used for RI'; COMMENT ON TYPE complex IS 'Complex number data type'; COMMENT ON VIEW my_view IS 'View of departmental costs';