Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Зеркалирование
Управление ресурсами
Безопасность
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
Определяет или изменяет комментарий объекта.
COMMENT ON
{ ACCESS METHOD <object_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> |
EVENT TRIGGER <object_name> |
EXTENSION <object_name> |
FOREIGN DATA WRAPPER <object_name> |
FOREIGN TABLE <object_name> |
FUNCTION <function_name> [([[<argmode>] [<argname>] <argtype> [, ...]])] |
INDEX <object_name> |
MATERIALIZED VIEW <object_name> |
OPERATOR <operator_name> (<left_type>, <right_type>) |
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 <procedure_name> [([[<argmode>] [<argname>] <argtype> [, ...]])] |
RESOURCE GROUP <object_name> |
RESOURCE QUEUE <object_name> |
ROLE <object_name |
ROUTINE <routine_name> [([[<argmode>] [<argname>] <argtype> [, ...]])] |
RULE <rule_name> ON <table_name> |
SCHEMA <object_name> |
SEQUENCE <object_name> |
SERVER <object_name> |
STATISTICS <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> |
TRANSFORM FOR <type_name> LANGUAGE <lang_name> |
TRIGGER <trigger_name> ON <table_name> |
TYPE <object_name> |
VIEW <object_name>
} IS { <string_literal> | NULL }
where <aggregate_signature> is:
* |
[ <argmode> ] [ <argname> ] <argtype> [ , ... ] |
[ [ <argmode> ] [ <argname> ] <argtype> [ , ... ] ] ORDER BY [ <argmode> ] [ <argname> ] <argtype> [ , ... ]
COMMENT сохраняет комментарий к объекту базы данных. Для каждого объекта хранится только одна строка комментария, поэтому для его изменения необходимо выполнить новую команду COMMENT для того же объекта. Чтобы удалить комментарий, укажите вместо текстовой строки значение NULL. Комментарии автоматически удаляются при удалении самого объекта.
База данных получает блокировку уровня SHARE UPDATE EXCLUSIVE на объект, к которому добавляется комментарий.
Для большинства типов объектов установить комментарий может только владелец объекта. Роли не имеют владельцев, поэтому правило для COMMENT ON ROLE заключается в следующем: вы должны быть суперпользователем, чтобы прокомментировать суперпользовательскую роль, или обладать привилегией CREATEROLE — чтобы прокомментировать обычную роль. Аналогично, методы доступа также не имеют владельцев; вы должны быть суперпользователем, чтобы прокомментировать метод доступа. Разумеется, суперпользователь может прокомментировать любой объект.
Просматривать комментарии можно с помощью метакоманд psql \dd, \d+ и \l+. Другие пользовательские интерфейсы для получения комментариев могут быть построены на основе тех же встроенных функций, которые использует psql, а именно: obj_description(), col_description() и shobj_description().
Примечание!
Database не поддерживает триггеры.
В настоящее время механизм безопасности для просмотра комментариев отсутствует: любой пользователь, подключённый к базе данных, может видеть все комментарии к объектам этой базы. Для общих объектов, таких как базы данных, роли и табличные пространства, комментарии хранятся глобально, поэтому любой пользователь, подключённый к любой базе данных в кластере, может видеть комментарии ко всем общим объектам.
Внимание! Не размещайте в комментариях информацию, критичную с точки зрения безопасности.
Добавить комментарий к таблице mytable:
COMMENT ON TABLE mytable IS 'This is my table.';
Затем удалить его:
COMMENT ON TABLE mytable IS NULL;
Другие примеры:
COMMENT ON ACCESS METHOD gin IS 'GIN index 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 EVENT TRIGGER cancel_ddl IS 'Cancels all DLL commands';
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 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 int4_ops 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 PROCEDURE my_proc (integer, integer) IS 'Runs a report';
COMMENT ON ROLE my_role IS 'Administration group for finance tables';
COMMENT ON ROUTINE my_routine (integer, integer) IS 'Runs a routine (which is a function or procedure)';
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 STATISTICS my_statistics IS 'Improves planner row estimations';
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';
Команда COMMENT отсутствует в стандарте SQL.