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