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!!

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] escreveu:
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
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.avozdoevangelho.com.br -> Peça gratuitamente um curso Bíblico

Twitter: avozdoevangelho
Twitter: matrixspnet

http://www.amados.com.br
http://bbnradio.org -> Ouça a rádio e faça gratuitamente um Curso Biblico On-Line




"Esta mensagem do SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO), empresa pública federal regida pelo disposto na Lei Federal nº 5.615, é enviada exclusivamente a seu destinatário e pode conter informações confidenciais, protegidas por sigilo profissional. Sua utilização desautorizada é ilegal e sujeita o infrator às penas da lei. Se você a recebeu indevidamente, queira, por gentileza, reenviá-la ao emitente, esclarecendo o equívoco."

"This message from SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO) -- a government company established under Brazilian law (5.615/70) -- is directed exclusively to its addressee and may contain confidential data, protected under professional secrecy rules. Its unauthorized use is illegal and may subject the transgressor to the law's penalties. If you're not the addressee, please send it back, elucidating the failure."
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a