2009/8/20 MIGUEL JOSE DE LIMA <[email protected]>
> Oi Tiago, para sua pergunta vou inserir apenas todos os registros que não
> violaram a chave!
> Mas de qualquer forma é uma alternativa.
> Valeu, Obrigado!
>
Então é mais fácil do que parece ;)
Você pode identificar os registros com chave duplicada através de um COUNT,
e não considerá-los no INSERT.
Exemplo fictício:
Tabela:
ESTOQUE
Campos da Chave:
PLANILHA, ITEM
SELECT que traz apenas os dados onde a chave não está duplicada:
SELECT
*
FROM
ESTOQUE EST,
(
SELECT
PLANILHA,
ITEM,
COUNT(ITEM) AS OCORRENCIAS
FROM
ESTOQUE
GROUP BY
PLANILHA,
ITEM
) CHAVES
WHERE
EST.PLANILHA = CHAVES.PLANILHA AND
CHAVES.OCORRENCIAS = 1
Ao colocar no WHERE o "CHAVES.OCORRENCIAS = 1", você está dizendo que quer
apenas os registros onde a ocorrência da chave seja apenas 1 registro na
tabela.
--
Tiago J. Adami
Dois Vizinhos - Paraná - Brasil
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral