sql >> Base de Datos >  >> RDS >> Mysql

MySQL Insertar en de una base de datos en otra

Su consulta debería ser así:

INSERT INTO newDatabase.table1 (Column1, Column2) 
SELECT column1, column2 FROM oldDatabase.table1;

ACTUALIZAR

Dado que esta respuesta está recibiendo más atención de lo que anticipé, debería ampliar esta respuesta. En primer lugar, puede que no sea obvio por la respuesta en sí, pero no es necesario que las columnas tengan el mismo nombre. Entonces, lo siguiente también funcionará (suponiendo que las columnas existan en sus respectivas tablas):

INSERT INTO newDatabase.table1 (Column1, Column2) 
SELECT SomeOtherColumn, MoreColumns FROM oldDatabase.table1;

Además, ni siquiera necesitan ser columnas reales en la tabla. Uno de los ejemplos de transformación de datos que uso con bastante frecuencia es:

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;

Entonces, como puede ser más obvio ahora, la regla es que, siempre que la consulta SELECT devuelva la misma cantidad de columnas que necesita la consulta INSERT, se puede usar en lugar de VALUES.