Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL Inserir em um banco de dados em outro


Sua consulta deve ficar assim:
INSERT INTO newDatabase.table1 (Column1, Column2) 
SELECT column1, column2 FROM oldDatabase.table1;

ATUALIZAÇÃO

Como essa resposta está recebendo mais atenção do que eu imaginava, devo expandir essa resposta. Em primeiro lugar, pode não ser óbvio pela própria resposta, mas as colunas não precisam ter o mesmo nome. Portanto, o seguinte também funcionará (supondo que as colunas existam em suas respectivas tabelas):
INSERT INTO newDatabase.table1 (Column1, Column2) 
SELECT SomeOtherColumn, MoreColumns FROM oldDatabase.table1;

Além disso, eles nem precisam ser colunas reais na tabela. Um dos exemplos de transformação de dados que uso com bastante frequência é:
INSERT INTO newDatabase.users (name, city, email, username, added_by) 
SELECT CONCAT(first_name, ' ', last_name), 'Asgard', CONCAT(first_name,'@gmail.com'), CONCAT(first_name,last_name), 'Damir' FROM oldDatabase.old_users;

Então, como pode ser mais óbvio agora, a regra é, desde que a consulta SELECT retorne o mesmo número de colunas que a consulta INSERT precisa, ela pode ser usada no lugar de VALUES.