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
