COMMENT ON { TABLE nome_do_objeto | COLUMN nome_da_tabela.nome_da_coluna | AGGREGATE nome_da_agregação (tipo_da_agregação) | CAST (tipo_de_origem AS tipo_de_destino) | CONSTRAINT nome_da_restrição ON nome_da_tabela | CONVERSION nome_do_objeto | DATABASE nome_do_objeto | DOMAIN nome_do_objeto | FUNCTION nome_da_função (tipo_arg1, tipo_arg2, ...) | INDEX nome_do_objeto | LARGE OBJECT oid_objeto_grande | OPERATOR nome_do_operador (tipo_operando_esq, tipo_operando_dir) | OPERATOR CLASS nome_do_objeto USING index_method | [ PROCEDURAL ] LANGUAGE nome_do_objeto | RULE nome_da_regra ON nome_da_tabela | SCHEMA nome_do_objeto | SEQUENCE nome_do_objeto | TRIGGER nome_do_gatilho ON nome_da_tabela | TYPE nome_do_objeto | VIEW nome_do_objeto } IS 'texto'
O comando COMMENT armazena um comentário sobre um objeto do banco de dados. Os comentários podem ser facilmente acessados através dos comandos \dd, \d+ e \l+ do psql. Outras interfaces de usuário podem acessar os comentários utilizando as mesmas funções nativas usadas pelo psql, ou seja: obj_description()
e col_description()
.
Para modificar um comentário basta executar novamente o comando COMMENT para o mesmo objeto. Somente um único comentário é armazenado para cada objeto. Para remover o comentário deve ser escrito NULL no lugar do texto. O comentário é automaticamente excluído quando o objeto é excluído.
Um comentário sobre o banco de dados somente pode ser criado no próprio banco de dados, e somente é visível neste banco de dados, e não nos demais bancos de dados.
Não existe atualmente nenhum mecanismo de segurança para os comentários: qualquer usuário conectado ao banco de dados pode ver todos os comentários sobre os objetos neste banco de dados; porém, somente os superusuários podem modificar comentários sobre objetos que não lhe pertencem. Portanto, não devem ser colocadas informações críticas para a segurança nos comentários.
Anexar um comentário à tabela minha_tabela:
COMMENT ON TABLE minha_tabela IS 'Esta tabela é minha.';
Remover o comentário:
COMMENT ON TABLE minha_tabela IS NULL;
Alguns outros exemplos:
COMMENT ON AGGREGATE minha_agregacao (double precision) IS 'Calcula a variância da amostra'; COMMENT ON CAST (text AS int4) IS 'Permite transformar texto em int4'; COMMENT ON COLUMN minha_tabela.minha_coluna IS 'Número de identificação do empregado'; [1] COMMENT ON CONVERSION minha_conversao IS 'Conversão para Unicode'; COMMENT ON DATABASE meu_bd IS 'Banco de dados de desenvolvimento'; COMMENT ON DOMAIN meu_dominio IS 'Domínio de endereço de correio eletrônico'; COMMENT ON FUNCTION minha_funcao (timestamp) IS 'Retorna algarismos romanos'; COMMENT ON INDEX meu_indice IS 'Garante a unicidade do identificador do empregado'; COMMENT ON LANGUAGE plpython IS 'Suporte a Python nos procedimentos armazenados'; COMMENT ON LARGE OBJECT 346344 IS 'Documento de planejamento'; COMMENT ON OPERATOR ^ (text, text) IS 'Realiza a interseção de dois textos'; COMMENT ON OPERATOR ^ (NONE, text) IS 'Este é um operador de prefixo para texto'; COMMENT ON OPERATOR CLASS int4ops USING btree IS 'Operadores inteiro de 4 bytes para árvores-B'; COMMENT ON RULE minha_regra ON minha_tabela IS 'Registra as atualizações das linhas dos empregados'; COMMENT ON SCHEMA meu_esquema IS 'Dados departamentais'; COMMENT ON SEQUENCE minha_sequencia IS 'Usado para gerar as chaves primárias'; COMMENT ON TABLE meu_esquema.minha_tabela IS 'Informações dos empregados'; COMMENT ON TRIGGER meu_gatilho ON minha_tabela IS 'Usado para integridade referencial'; COMMENT ON TYPE complex IS 'Tipo de dado de número complexo'; COMMENT ON VIEW minha_visão IS 'Visão dos custos departamentais';
[1] |
Também pode ser usada a forma COMMENT ON COLUMN minha_visao.minha_coluna IS 'Comentário sobre a coluna da visão'; (N. do T.) |