blob: 397327cb4b7f493e765a6358a532ad92eb0fb587 [file] [view]
---
layout: global
title: COMMENT ON
displayTitle: COMMENT ON
license: |
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
---
### Description
The `COMMENT ON` statement sets or updates the comment on a database, a table, or
one or more table columns. Setting a column comment to `NULL` removes it.
### Syntax
```sql
COMMENT ON { DATABASE | SCHEMA | NAMESPACE } database_name IS comment
COMMENT ON TABLE table_name IS comment
COMMENT ON COLUMN table_name.column_name IS comment
COMMENT ON TABLE table_name COLUMN ( column_name IS comment [ , ... ] )
```
### Parameters
* **database_name**
Specifies the name of the database on which the comment is set.
* **table_name**
Specifies the name of the table on which the comment is set. The name may be
qualified with a catalog and/or database name.
* **column_name**
Specifies the column on which the comment is set. In the single-column form
(`COMMENT ON COLUMN`), the identifier must have at least two parts: the last
part is the column name and the preceding parts qualify the table (for example
`table_name.column_name` or `database_name.table_name.column_name`). This form
can only reference a top-level column. To comment on a nested field, or on
multiple columns at once, use the `COMMENT ON TABLE table_name COLUMN ( ... )`
form, where each `column_name` may be a nested field path such as `col.field`.
A parent field and one of its nested fields cannot be commented in the same
`COMMENT ON TABLE ... COLUMN` statement.
The target of a column comment must be a table; views are not supported.
* **comment**
A `STRING` literal or `NULL`. For a column, setting the comment to `NULL` removes
an existing comment, while an empty string `''` sets an empty comment. For a database
or table, both `NULL` and `''` set an empty comment.
### Examples
```sql
-- Set a comment on a database
COMMENT ON DATABASE some_db IS 'This is a database';
-- Set a comment on a table
COMMENT ON TABLE some_db.some_table IS 'This is a table';
-- Set a comment on a single column
COMMENT ON COLUMN some_db.some_table.some_column IS 'This is a column';
-- Remove a column comment
COMMENT ON COLUMN some_db.some_table.some_column IS NULL;
-- Set comments on multiple columns, including a nested field
COMMENT ON TABLE some_db.some_table COLUMN (
id IS 'The identifier',
address.city IS 'The city part of the address'
);
```
### Related Statements
* [ALTER TABLE](sql-ref-syntax-ddl-alter-table.html)
* [DESCRIBE TABLE](sql-ref-syntax-aux-describe-table.html)