Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL Inserisci in da un database in un altro

La tua richiesta dovrebbe essere questa:

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

AGGIORNAMENTO

Poiché questa risposta sta ricevendo più attenzione di quanto mi aspettassi, dovrei espandere questa risposta. Prima di tutto, potrebbe non essere ovvio dalla risposta stessa, ma non è necessario che le colonne abbiano lo stesso nome. Quindi, anche quanto segue funzionerà (supponendo che le colonne esistano nelle rispettive tabelle):

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

Inoltre, non è nemmeno necessario che siano colonne reali nella tabella. Uno degli esempi di trasformazione dei dati che utilizzo abbastanza spesso è:

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;

Quindi, come potrebbe essere più ovvio ora, la regola è che, purché la query SELECT restituisca lo stesso numero di colonne di cui ha bisogno la query INSERT, può essere utilizzata al posto di VALUES.