Eu tenho uma instância MySQL em execução no RDS da Amazon. Isso significa que não posso alterar nenhuma das configurações do log binário.
Eu tenho uma tabela source
, criada assim, que contém cerca de 2 bilhões de linhas:
CREATE TABLE `source` (
id INT PRIMARY KEY AUTO_INCREMENT,
value1 VARCHAR(256),
value2 VARCHAR(256)
);
Eu tenho outra tabela destination
, com as mesmas colunas, mas id
é uma BIGINT
:
CREATE TABLE `destination` (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
value1 VARCHAR(256),
value2 VARCHAR(256)
);
A source
tabela tem lacunas no ID que quero compactar. Eu gostaria de copiar todas as linhas source
para destination
, sem a id
coluna , algo assim:
INSERT INTO `destination` (value1, value2)
SELECT value1, value2 FROM `source`;
Como posso fazer isso, sem travar a source
tabela? A cópia em si vai demorar muito, devido ao tamanho da tabela, e não posso bloqueá-la por tanto tempo.
Basicamente, quero executar a instrução acima com READ UNCOMMITTED
isolamento, mas isso não é possível devido à minha incapacidade de alterar as configurações de log binário.