quinta-feira, 15 de outubro de 2009

MySQL - Copiar apenas arquivos inexistentes de uma tabela para outra

Notar que TABELA1_BKP2 é a tabela que contém o maior numero de inputs e TABELA1 é a tabela onde serão inseridos os dados.
Isso se deve ao fato de eu ter um backup com mais dados que minha tabela original, devido a um erro na hora de apagar alguns dados, como em minha tabela original todo dia entram novos cadastros não havia a possibilidade de apenas passar por cima voltando o backup.
Vale lembrar que as tabelas tem o mesmo numero de campos, assim como todos os campos tem as mesmas características.

Para localizar:
select * from TABELA1_BKP2 left join TABELA1 on TABELA1_BKP2.id = TABELA1.id where TABELA1.id is null;

Para copiar:
INSERT INTO TABELA1 ( id , Empresa , Endereco , Cidade , Estado , cep , DDI , DDD , Fone , Fax , nome , Cargo , cpfID , Atividade_Principal , Atividade , email , ip , data , cnpj , locamapa , disponivel ) select TABELA1_BKP2.id, TABELA1_BKP2.Empresa, TABELA1_BKP2.Endereco, TABELA1_BKP2.Cidade, TABELA1_BKP2.Estado, TABELA1_BKP2.cep, TABELA1_BKP2.DDI, TABELA1_BKP2.DDD, TABELA1_BKP2.Fone, TABELA1_BKP2.Fax, TABELA1_BKP2.nome, TABELA1_BKP2.Cargo, TABELA1_BKP2.cpfID, TABELA1_BKP2.Atividade_Principal, TABELA1_BKP2.Atividade, TABELA1_BKP2.email, TABELA1_BKP2.ip, TABELA1_BKP2.data, TABELA1_BKP2.cnpj, TABELA1_BKP2.locamapa, TABELA1_BKP2.disponivel from TABELA1_BKP2 left join TABELA1 on TABELA1_BKP2.id = TABELA1.id where TABELA1.id is null;

Agradecimento especial ao DFroz pelas dicas. Valeu Bro!! ;)

Nenhum comentário:

Postar um comentário

Linux bash file returns unexpected token `$'do\r''

open file in vi edit with   vi filename.sh   command; type in vi  :set ff=unix  command; save file with  :wq It will save the file with unix...