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

Responder a