Ignorando INSERTS com valores duplicados

Categoria: MySQL
Publicado em 28 de Novembro de 2010

Existem casos onde é necessário inserir registros de uma tabela em outra, como no exemplo abaixo:

1
INSERT INTO tabela1(col1, col2, col3) SELECT c1, c2, c3 FROM tabela2;

Neste caso, se algum registro da tabela 2 já existir na tabela 1, o MySQL retornará com o erro de DUPLICATE ENTRY.

Para evitar este erro, ignorando os registros duplicados e só inserindo na tabela 1 os registros ainda não existem, a keyword IGNORE pode ser usada. O mesmo código pode ser escrito desta forma:

1
INSERT IGNORE INTO tabela1(col1, col2, col3) SELECT c1, c2, c3 FROM tabela2;

Desta vez, registros existentes serão ignorados e não existentes serão inseridos.

 

Copyright © Fernando Hidemi Uchiyama 2010 - Todos os direitos reservados