Em 30-11-2012 07:59, Anselmo Silva escreveu:
> Bem, nos meus testes auditando a tabela que adiciona uma nova coluna com
> default não gera o evento update, então suponho ser mais 'barato' esta
> abordagem.
> para informações mais técnicas, vide os mestres da lista.

E por causa disso, existe uma diferença lógica:
Ao inserir nova coluna, as linhas existentes não terão o novo valor 
DEFAULT, somente novas linhas.

> Em 30 de novembro de 2012 02:08, Danilo Silva
> <danilo.dsg.go...@gmail.com <mailto:danilo.dsg.go...@gmail.com>> escreveu:
>
>     Pessoal,
>
>     Preciso incluir um novo campo em uma tabela, esse campo é do tipo
>     integer. Preciso que todos registros recebam o valor 1 referente a
>     esse novo campo.
>
>     Minha dúvida está em saber qual dos comandos abaixo seria mais
>     rápido, ou não faz diferença?
>
>     [1] ALTER TABLE tabela ADD COLUMN novo_campo integer; UPDATE tabela
>     SET novo_campo = 1;
>     ou
>     [2] ALTER TABLE tabela ADD COLUMN novo_campo integer DEFAULT 1;

Note que na situação [1] você tem dois comandos em uma linha.
Logo, a situação [1] será mais demorada que a [2], uma vez que a [1] é 
exatamente a [2] mais um UPDATE.

>     Lembrando que tanto faz em deixar ou não o campo com um valor
>     DEFAULT, mas como a tabela já possui registros (atualmente está com
>     4500000 de registros), preciso que o valor seja 1 para os registros
>     já existentes.

Então você precisará do UPDATE. Use sua linha [1].

[]s

__________________________________
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos & Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
______________________________
FREE SOFTWARE SOLUTIONS
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a