On 21-08-2013 17:13, Guimarães Faria Corcete DUTRA, Leandro wrote:
2013/8/21 Bruno Silva <[email protected]>:
UPDATE pg_attribute SET atttypmod = <novo_tamanho>+4
WHERE attrelid = 'TABLE1'::regclass
AND attname = 'COL1';
De maneira geral, é uma limitação do PostgreSQL (e dos outros SGBDs)
que não se recomenda a alteração do catálogo. Há um trabalho lento de
tornar o catálogo manipulável, mas não creio que a recomendação tenha
sido já alterada.
Mas é possível, e funciona. Mas muito, muito cuidado.
Alterar o catálogo é muito perigoso, se vc fizer alguma alteração
equivocada pode corromper o heap e inutilizar a tabela.
Eu utilizaria esse artificio de alterar o catálogo como ÚLTIMA ALTERNATIVA.
E como última alternativa, pelo menos para ser mais seguro, vc precisa
antes obter um AccessExclusiveLock na relação e colocar isso tudo em uma
transação, mas eu não faria dessa forma e sim como o Dutra falou abaixo.
De maneira geral, seria melhor usar uma consulta sobre o catálogo para
gerar um programeta SQL que fizesse as alterações. Há vários exemplos
no arquivo da lista e na Teia; procure por algo como “SELECT 'DROP
VIEW”…
+1
Att,
--
Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral