---
title: "COMMENT"
url: "https://docs.yugabyte.com/stable/api/ysql/the-sql-language/statements/ddl_comment/"
---

# COMMENT

Use the COMMENT statement to set, update, or remove a comment on a database object.

## Synopsis

Use the `COMMENT` statement to set, update, or remove a comment on a database object.

## Syntax

- [![Grammar Icon](/icons/file-lines.svg)Grammar](#grammar-1)
- [![Diagram Icon](/icons/diagram.svg)Diagram](#diagram-1)

```output.ebnf
comment_on ::= COMMENT ON 
               { ACCESS METHOD access_method_name
                 | AGGREGATE aggregate_name ( aggregate_signature )
                 | CAST ( source_type AS target_type )
                 | COLLATION object_name
                 | COLUMN relation_name . column_name
                 | CONSTRAINT constraint_name ON table_name
                 | CONSTRAINT constraint_name ON DOMAIN domain_name
                 | CONVERSION object_name
                 | DATABASE object_name
                 | DOMAIN object_name
                 | EXTENSION object_name
                 | EVENT TRIGGER object_name
                 | FOREIGN DATA WRAPPER object_name
                 | FOREIGN TABLE object_name
                 | FUNCTION subprogram_name ( [ subprogram_signature ] 
                   ) | INDEX object_name
                 | LARGE OBJECT large_object_oid
                 | MATERIALIZED VIEW object_name
                 | OPERATOR operator_name ( operator_signature )
                 | OPERATOR CLASS object_name USING index_method
                 | OPERATOR FAMILY object_name USING index_method
                 | POLICY policy_name ON table_name
                 | [ PROCEDURAL ] LANGUAGE object_name
                 | PROCEDURE subprogram_name ( 
                   [ subprogram_signature ] )
                 | PUBLICATION object_name
                 | ROLE object_name
                 | ROUTINE subprogram_name ( [ subprogram_signature ] 
                   ) | RULE rule_name ON table_name
                 | SCHEMA object_name
                 | SEQUENCE object_name
                 | SERVER object_name
                 | STATISTICS object_name
                 | SUBSCRIPTION object_name
                 | TABLE object_name
                 | TABLESPACE object_name
                 | TEXT SEARCH CONFIGURATION object_name
                 | TEXT SEARCH DICTIONARY object_name
                 | TEXT SEARCH PARSER object_name
                 | TEXT SEARCH TEMPLATE object_name
                 | TRIGGER trigger_name ON table_name
                 | TYPE object_name
                 | VIEW object_name } IS { text_literal | NULL }
```

#### comment\_on

COMMENTONACCESSMETHOD[access\_method\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#access-method-name)AGGREGATE[aggregate\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#aggregate-name)([aggregate\_signature](/stable/api/ysql/syntax_resources/grammar_diagrams#aggregate-signature))CAST([source\_type](/stable/api/ysql/syntax_resources/grammar_diagrams#source-type)AS[target\_type](/stable/api/ysql/syntax_resources/grammar_diagrams#target-type))COLLATION[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)COLUMN[relation\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#relation-name).[column\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#column-name)CONSTRAINT[constraint\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#constraint-name)ON[table\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#table-name)CONSTRAINT[constraint\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#constraint-name)ONDOMAIN[domain\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#domain-name)CONVERSION[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)DATABASE[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)DOMAIN[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)EXTENSION[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)EVENTTRIGGER[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)FOREIGNDATAWRAPPER[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)FOREIGNTABLE[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)FUNCTION[subprogram\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#subprogram-name)([subprogram\_signature](/stable/api/ysql/syntax_resources/grammar_diagrams#subprogram-signature))INDEX[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)LARGEOBJECT[large\_object\_oid](/stable/api/ysql/syntax_resources/grammar_diagrams#large-object-oid)MATERIALIZEDVIEW[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)OPERATOR[operator\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#operator-name)([operator\_signature](/stable/api/ysql/syntax_resources/grammar_diagrams#operator-signature))OPERATORCLASS[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)USING[index\_method](/stable/api/ysql/syntax_resources/grammar_diagrams#index-method)OPERATORFAMILY[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)USING[index\_method](/stable/api/ysql/syntax_resources/grammar_diagrams#index-method)POLICY[policy\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#policy-name)ON[table\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#table-name)PROCEDURALLANGUAGE[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)PROCEDURE[subprogram\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#subprogram-name)([subprogram\_signature](/stable/api/ysql/syntax_resources/grammar_diagrams#subprogram-signature))PUBLICATION[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)ROLE[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)ROUTINE[subprogram\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#subprogram-name)([subprogram\_signature](/stable/api/ysql/syntax_resources/grammar_diagrams#subprogram-signature))RULE[rule\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#rule-name)ON[table\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#table-name)SCHEMA[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)SEQUENCE[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)SERVER[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)STATISTICS[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)SUBSCRIPTION[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)TABLE[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)TABLESPACE[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)TEXTSEARCHCONFIGURATION[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)TEXTSEARCHDICTIONARY[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)TEXTSEARCHPARSER[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)TEXTSEARCHTEMPLATE[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)TRIGGER[trigger\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#trigger-name)ON[table\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#table-name)TYPE[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)VIEW[object\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#object-name)IS[text\_literal](/stable/api/ysql/syntax_resources/grammar_diagrams#text-literal)NULL

## Semantics

To remove a comment, set the value to `NULL`.

### *comment\_on*

#### COMMENT ON

Add or change a comment about a database object. To remove a comment, set the value to `NULL`.

### *aggregate\_signature*

## Examples

### Add a comment

```plpgsql
COMMENT ON DATABASE postgres IS 'Default database';
```

```plpgsql
COMMENT ON INDEX index_name IS 'Special index';
```

### Remove a comment

```plpgsql
COMMENT ON TABLE some_table IS NULL;
```
