Em 29 de março de 2016 15:37, Victor Fugiwara <victorfugiw...@gmail.com>
escreveu:

> Boa tarde pessoal,
>

Boa tarde!

Preciso adicionar um campo em uma tabela, sendo que o valor deste campo se
> baseia na existência de um outro. A ideia seria algo assim:
>

> ALTER TABLE tabela ADD COLUMN coluna boolean DEFAULT (outracoluna IS
> NULL);
>

>
Ou seja, adiciono o campo e seu valor padrão depende do que tem preenchido
> em outra coluna da tabela. A necessidade disso é pra evitar o alter table
> seguido de um update. O valor default seria removido em seguida, essa regra
> seria apenas para a criação desse campo.
>

Ocorre que, por baixo, não há como escapar do "update". Você pretende fazer
isso para ter um alter table mais "performático"? Ele não será, com o
default, muito mais rápido do que um update com as devidas otimizações
(desabilitar triggers e etc.), na teoria.


> O comando desse formato dá o erro: ERRO:  não pode utilizar referência à
> coluna na expressão padrão
>
> Existe alguma forma de fazer isso sem a necessidade do update?
>

Talvez haja outra possibilidade, mas como uma coisa é inerente à outra,
talvez não seja viável. Qual seria o problema que estás enfrentando para
evitar o update?

[]'s
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a