Olá,

Para completar o que o Osvaldo apresentou também pode-se alterar o parâmetro
transform_null_equals do postgresql.conf.

2009/10/21 Osvaldo Kussama <[email protected]>

> 2009/10/21 Joao Cosme de Oliveira Junior <[email protected]>
> >
> > Só para complementar .....
> > Null significa indeterminado ou não se aplica ....
> >
> > Por exemplo: o caboclo vai preencher um ficha e tem lá : número de
> gestações : coloque null , porque não se aplica!
> > Em outro caso pode ser indeterminado. Um exemplo bem tosco... em um campo
> idade:
> >
> > Então null não vai garantir unicidade, porque pode ser qualquer valor
> indeterminado. Por exemplo um campo null em um registro não tenho como dizer
> que é igual a um campo null em outro registro, já que são indeterminados!!
>
> Só para lembrar:
> O PostgreSQL possui a comparação IS [NOT] DISTINCT FROM que trata
> NULLs como sendo "iguais":
>
> bdteste=# SELECT NULL  IS NOT DISTINCT FROM  NULL;
>  ?column?
> ----------
>  t
> (1 registro)
>
> bdteste=# SELECT NULL  IS DISTINCT FROM  NULL;
>  ?column?
> ----------
>  f
> (1 registro)
>
> ENQUANTO
>
> bdteste=# SELECT NULL = NULL;
>  ?column?
> ----------
>  (null)
> (1 registro)
>
>
> >
> > Loucura Loucura !!!
> >
> > Abraços!!!
> >
> >
> >
> > João Cosme de Oliveira Júnior
> >
> > Seja inteligente, use Software-livre!!!
> > LPI Certified
> > LPI000185554
> >
> >
> > Em 21/10/2009 às 15:13 horas, [email protected]:
> >
> > Muito obrigado, vou estar assim que chegar em casa.
> >
> > 2009/10/21 Osvaldo Kussama <[email protected]>
> >>
> >> 2009/10/21 Nilson Chagas <[email protected]>:
> >> > Pessoal, vou fazer uma pergunta, creio eu de pura ignorancia, mas não
> sei
> >> > nem como procurar isto.
> >> >
> >> >
> >> > Tenho um campo na tabela que deve ser unico, salvo se ele estiver
> nulo, não
> >> > testei mas até onde eu sei indices unicos não permitem duplicar campos
> >> > nulos.
> >> >
> >> > Alguém pode me esclarecer isto??
> >> >
> >>
> >>
> >> Creio que é possível inserir vários registros que tenham o campo do
> índice NULL.
> >>
> >> bdteste=# CREATE TEMP TABLE foo(x int);
> >> CREATE TABLE
> >> bdteste=# CREATE UNIQUE INDEX id_x ON foo(x);
> >> CREATE INDEX
> >> bdteste=# INSERT INTO foo VALUES (0);
> >> INSERT 0 1
> >> bdteste=# INSERT INTO foo VALUES (1);
> >> INSERT 0 1
> >> bdteste=# INSERT INTO foo VALUES (1);
> >> ERRO:  duplicar valor da chave viola a restrição de unicidade "id_x"
> >> bdteste=# INSERT INTO foo VALUES (null);
> >> INSERT 0 1
> >> bdteste=# INSERT INTO foo VALUES (null);
> >> INSERT 0 1
> >> bdteste=# INSERT INTO foo VALUES (null);
> >> INSERT 0 1
> >>
> >> bdteste=# \pset null '(null)'
> >> Exibição nula é "(null)".
> >> bdteste=# SELECT * FROM foo;
> >>   x
> >> --------
> >>      0
> >>      1
> >>  (null)
> >>  (null)
> >>  (null)
> >> (5 registros)
> >>
>
>
> Osvaldo
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>


[]s
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a