Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Possuo duas chaves primárias em uma tabela(ID e Data) e possuo uma rotina de importação que joga de um arquivo txt pra dentro dessa tabela, queria saber se tem como fazer com que ao inserir um registro duplicado ele ignore o mesmo e continue a fazer a importação sempre ignorando os registros que ja existirem dentro dessa tabela...
Agradeço a atenção
lembrando que o replace nao eh soh subistituiçao ele insere tudo usando a q tah ingressando agora em caso de duplicidade.
Insert ignore tambem insere tudo, soh q mantendo a linha velha em caso de duplicidade
>
Possuo duas chaves primárias em uma tabela(ID e Data) e possuo uma rotina de importação que joga de um arquivo txt pra dentro dessa tabela, queria saber se tem como fazer com que ao inserir um registro duplicado ele ignore o mesmo e continue a fazer a importação sempre ignorando os registros que ja existirem dentro dessa tabela...
Agradeço a atenção
Não, você não possui DUAS chaves primárias na tabela. Você possui UMA chave primária e ela é composta, ok?
Seguinte:
Se você quer fazer o insert, e caso encontre um registro que já exista a chave primária, você tem 2 opções: ignorar o erro e manter o registro que já está na tabela ou substituir o registro que já está na tabela.
Parar MANTER o registro que já está na tabela você continua utilizando o insert normal, porém você adiciona a palavra IGNORE:
INSERT IGNORE INTO tabela (campos) VALUES (valores);
Para SUBSTITUIR o registro que está na tabela pelo que está no seu txt, você utiliza o comando REPLACE:
REPLACE INTO tabela (campos) VALUES (valores);