Личный кабинет
Укажите e-mail, на который будет выслан код восстановления пароля.
На указанный вами адрес e-mail был выслан код подтверждения аккаунта. Введите полученный код для продолжения:
Введите новый пароль два раза:
COMMENT — задать или изменить комментарий объекта
COMMENT ON { ACCESS METHOD имя_объекта | AGGREGATE имя_агрегатной_функции ( сигнатура_агр_функции ) | CAST (исходный_тип AS целевой_тип) | COLLATION имя_объекта | COLUMN имя_отношения.имя_столбца | CONSTRAINT имя_ограничения ON имя_таблицы | CONSTRAINT имя_ограничения ON DOMAIN имя_домена | CONVERSION имя_объекта | DATABASE имя_объекта | DOMAIN имя_объекта | EXTENSION имя_объекта | EVENT TRIGGER имя_объекта | FOREIGN DATA WRAPPER имя_объекта | FOREIGN TABLE имя_объекта | FUNCTION имя_функции [ ( [ [ режим_аргумента ] [ имя_аргумента ] тип_аргумента [, ...] ] ) ] | INDEX имя_объекта | LARGE OBJECT oid_большого_объекта | MATERIALIZED VIEW имя_объекта | OPERATOR имя_оператора (тип_слева, тип_справа) | OPERATOR CLASS имя_объекта USING индексный_метод | OPERATOR FAMILY имя_объекта USING индексный_метод | POLICY имя_политики ON имя_таблицы | [ PROCEDURAL ] LANGUAGE имя_объекта | PROCEDURE имя_процедуры [ ( [ [ режим_аргумента ] [ имя_аргумента ] тип_аргумента [, ...] ] ) ] | PUBLICATION имя_объекта | ROLE имя_объекта | ROUTINE имя_подпрограммы [ ( [ [ режим_аргумента ] [ имя_аргумента ] тип_аргумента [, ...] ] ) ] | RULE имя_правила ON имя_таблицы | SCHEMA имя_объекта | SEQUENCE имя_объекта | SERVER имя_объекта | STATISTICS имя_объекта | SUBSCRIPTION имя_объекта | TABLE имя_объекта | TABLESPACE имя_объекта | TEXT SEARCH CONFIGURATION имя_объекта | TEXT SEARCH DICTIONARY имя_объекта | TEXT SEARCH PARSER имя_объекта | TEXT SEARCH TEMPLATE имя_объекта | TRANSFORM FOR имя_типа LANGUAGE имя_языка | TRIGGER имя_триггера ON имя_таблицы | TYPE имя_объекта | VIEW имя_объекта } IS 'текст' Здесь сигнатура_агр_функции: * | [ режим_аргумента ] [ имя_аргумента ] тип_аргумента [ , ... ] | [ [ режим_аргумента ] [ имя_аргумента ] тип_аргумента [ , ... ] ] ORDER BY [ режим_аргумента ] [ имя_аргумента ] тип_аргумента [ , ... ]
имя_объекта
имя_агрегатной_функции
сигнатура_агр_функции
исходный_тип
целевой_тип
имя_отношения
имя_столбца
имя_ограничения
имя_таблицы
имя_домена
имя_функции
режим_аргумента
имя_аргумента
тип_аргумента
oid_большого_объекта
имя_оператора
тип_слева
тип_справа
индексный_метод
имя_политики
имя_процедуры
имя_подпрограммы
имя_правила
имя_типа
имя_языка
имя_триггера
текст
COMMENT сохраняет комментарий об объекте базы данных.
COMMENT
Для каждого объекта сохраняется только одна строка, так что для изменения комментария нужно просто выполнить COMMENT ещё раз для того же объекта. Чтобы удалить комментарий, вместо текстовой строки укажите NULL. При удалении объектов комментарии удаляются автоматически.
NULL
Для большинства типов объектов комментарий может установить только владелец объекта. Но так как роли не имеют владельцев, COMMENT ON ROLE для ролей суперпользователей разрешено выполнять только суперпользователям, а для обычных ролей — тем, кто имеет право CREATEROLE. Так же не имеют владельцев и методы доступа; чтобы добавить комментарий для метода доступа, нужно быть суперпользователем. Разумеется, суперпользователи могут задавать комментарии для любых объектов.
COMMENT ON ROLE
CREATEROLE
Просмотреть комментарии можно в psql, используя семейство команд \d. Имеется возможность получать комментарии и в других пользовательских интерфейсах, используя те же встроенные функции, что использует psql, а именно obj_description, col_description и shobj_description (см. Таблицу 9.68).
\d
obj_description
col_description
shobj_description
Имя объекта, для которого задаётся комментарий. Имена таблиц, агрегатных функций, правил сортировки, перекодировок, доменов, сторонних таблиц, функций, индексов, операторов, классов и семейств операторов, процедур, последовательностей, подпрограмм, объектов текстового поиска и статистики, типов и представлений могут быть дополнены именем схемы. При определении комментария для столбца, имя_отношения должно ссылаться на таблицу, представление, составной тип или стороннюю таблицу.
При создании комментария для ограничения, триггера, правила или политики эти параметры задают имя таблицы или домена, к которым относится этот объект.
Имя исходного типа данных для приведения.
Имя целевого типа данных для приведения.
Режим аргумента функции, процедуры или агрегата: IN, OUT, INOUT или VARIADIC. По умолчанию подразумевается IN. Заметьте, что COMMENT не учитывает аргументы OUT, так как для идентификации функции нужны только типы входных аргументов. Поэтому достаточно перечислить только аргументы IN, INOUT и VARIADIC.
IN
OUT
INOUT
VARIADIC
Имя аргумента функции, процедуры или агрегата. Заметьте, что на самом деле COMMENT не обращает внимание на имена аргументов, так как для однозначной идентификации функции достаточно только типов аргументов.
Тип данных аргумента функции, процедуры или агрегата.
OID большого объекта.
Тип данных аргументов оператора (возможно, дополненный именем схемы). В случае отсутствия аргумента префиксного или постфиксного оператора укажите вместо типа NONE.
NONE
PROCEDURAL
Это слово не несёт смысловой нагрузки.
Имя типа данных, для которого предназначена трансформация.
Имя языка, для которого предназначена трансформация.
Новый комментарий, записанный в виде строковой константы (или NULL для удаления комментария).
В настоящее время механизм безопасности в части просмотра комментариев отсутствует: любой пользователь, подключённый к базе данных, может видеть все комментарии всех объектов базы. Для общих объектов, таких как базы данных, роли и табличные пространства, комментарии хранятся глобально, так что их может видеть любой пользователь, подключённый к любой базе данных в кластере. Поэтому ничего секретного писать в комментариях не следует.
Добавление комментария для таблицы mytable:
mytable
COMMENT ON TABLE mytable IS 'Это моя таблица.';
Удаление его:
COMMENT ON TABLE mytable IS NULL;
Ещё несколько примеров:
COMMENT ON ACCESS METHOD rtree IS 'Метод доступа R-Tree'; COMMENT ON AGGREGATE my_aggregate (double precision) IS 'Вычисляет дисперсию выборки'; COMMENT ON CAST (text AS int4) IS 'Выполняет приведение строк к int4'; COMMENT ON COLLATION "fr_CA" IS 'Канадский французский'; COMMENT ON COLUMN my_table.my_column IS 'Порядковый номер сотрудника'; COMMENT ON CONVERSION my_conv IS 'Перекодировка в UTF8'; COMMENT ON CONSTRAINT bar_col_cons ON bar IS 'Ограничение столбца col'; COMMENT ON CONSTRAINT dom_col_constr ON DOMAIN dom IS 'Ограничение col для домена'; COMMENT ON DATABASE my_database IS 'База данных разработчиков'; COMMENT ON DOMAIN my_domain IS 'Домен почтового адреса'; COMMENT ON EXTENSION hstore IS 'Реализует тип данных hstore'; COMMENT ON FOREIGN DATA WRAPPER mywrapper IS 'Моя обёртка сторонних данных'; COMMENT ON FOREIGN TABLE my_foreign_table IS 'Информация о сотрудниках в другой БД'; COMMENT ON FUNCTION my_function (timestamp) IS 'Возвращает число римскими цифрами'; COMMENT ON INDEX my_index IS 'Обеспечивает уникальность по коду сотрудника'; COMMENT ON LANGUAGE plpython IS 'Поддержка Python для хранимых процедур'; COMMENT ON LARGE OBJECT 346344 IS 'Документ планирования'; COMMENT ON MATERIALIZED VIEW my_matview IS 'Сводка истории заказов'; COMMENT ON OPERATOR ^ (text, text) IS 'Вычисляет пересечение двух текстов'; COMMENT ON OPERATOR - (NONE, integer) IS 'Унарный минус'; COMMENT ON OPERATOR CLASS int4ops USING btree IS 'Операторы для четырёхбайтовых целых (для B-деревьев)'; COMMENT ON OPERATOR FAMILY integer_ops USING btree IS 'Все целочисленные операторы (для B-деревьев)'; COMMENT ON POLICY my_policy ON mytable IS 'Фильтр строк по пользователям'; COMMENT ON PROCEDURE my_proc (integer, integer) IS 'Строит отчёт'; COMMENT ON ROLE my_role IS 'Административная группа для таблиц бухгалтерии'; COMMENT ON RULE my_rule ON my_table IS 'Протоколирует изменения в записях сотрудников'; COMMENT ON SCHEMA my_schema IS 'Данные отдела'; COMMENT ON SEQUENCE my_sequence IS 'Предназначена для генерации первичных ключей'; COMMENT ON SERVER myserver IS 'Мой сторонний сервер'; COMMENT ON STATISTICS my_statistics IS 'Улучшает оценку числа строк для планировщика'; COMMENT ON TABLE my_schema.my_table IS 'Данные сотрудников'; COMMENT ON TABLESPACE my_tablespace IS 'Табличное пространство для индексов'; COMMENT ON TEXT SEARCH CONFIGURATION my_config IS 'Фильтрация специальных слов'; COMMENT ON TEXT SEARCH DICTIONARY swedish IS 'Стеммер Snowball для шведского языка'; COMMENT ON TEXT SEARCH PARSER my_parser IS 'Разделяет текст на слова'; COMMENT ON TEXT SEARCH TEMPLATE snowball IS 'Стеммер Snowball'; COMMENT ON TRANSFORM FOR hstore LANGUAGE plpythonu IS 'Трансформирует данные из hstore в словарь языка Python'; COMMENT ON TRIGGER my_trigger ON my_table IS 'Обеспечивает ссылочную целостность'; COMMENT ON TYPE complex IS 'Тип данных комплексных чисел'; COMMENT ON VIEW my_view IS 'Представление расходов по отделам';
Оператор COMMENT отсутствует в стандарте SQL.
Соглашаюсь с условиями обработки персональных данных