O que preciso é que o default no alter table não realize alterações nos registros existentes. Por padrão quando você atribui um dafault a um campo, o pg atualiza todos os registros da tabela que estão null para o valor default. No Oracle, para você me entender, o valor default só é atribuído para os novos registros a partir da alteração da estrutura da tabela. Existe algum comando que desabilite essa operação automática do default no pg?
Quanto a ser ou não boa prática isso depende da semântica do campo. Quando um campo possui um valor null, a pesquisa por is null ou is not null não é mais rápida do que a comparação com um atributo valorado NULL? Valeu. Leandro Guimarães Faria Corcete DUTRA wrote: > Em Qua, 2007-04-25 às 10:15 -0300, Rudinei Dias escreveu: > >> Como fazer com que um alter table adicionando um campo com default não >> atualize os registros existentes? >> É que o alter table dá um update em todos os registros da tabela com o >> valor default. >> > > Está um pouco difícil te entender, mas creio que você quer que os > registros já existentes tenham NULL? > > Isso não é boa prática, o ideal seria um valor especial — como o > próprio DEFAULT. > > Mas você pode criar o atributo NULL, e depois atribuir um valor por > omissão. > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Grupo de Usuários do PostgreSQL no Brasil > Antes de perguntar consulte o manual > http://pgdocptbr.sourceforge.net/ > > Para editar suas opções ou sair da lista acesse a página da lista em: > http://pgfoundry.org/mailman/listinfo/brasil-usuarios _______________________________________________ Grupo de Usuários do PostgreSQL no Brasil Antes de perguntar consulte o manual http://pgdocptbr.sourceforge.net/ Para editar suas opções ou sair da lista acesse a página da lista em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios
