Tenho uma tabela com cerca de 6.000.000 de registros. É feito backup a cada poucas horas. Recentemente, um script executado em cascata atualizou cerca de 2.000.000 dos registros mais antigos para valores inválidos. Eu extraí esses 2.000.000 registros do backup e os tenho prontos para reinserir, na forma de "INSERT INTO table (col, col) values (val, val)"
Agora, preciso de um mecanismo para inserir esses 2.000.000 registros, substituindo os dados inválidos pelos dados históricos, mantendo os IDs existentes (o que significa que REPLACE não é uma opção - pois exclui em duplicata e incrementa o ID). Além disso, preciso fazer isso sem interromper o acesso ao servidor por muito tempo (o que significa DROP TABLE, então --force trickery não é uma opção).
Tenho certeza de que estou perdendo alguma coisa, mas não consigo descobrir como substituir no local dentro dos parâmetros atuais. Pensamentos?