sql >> Databasteknik >  >> RDS >> Mysql

MySQL Infoga i från en databas i en annan

Din fråga bör se ut så här:

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

UPPDATERA

Eftersom det här svaret får mer uppmärksamhet än vad jag ens förväntat mig, borde jag utöka det här svaret. För det första kanske det inte framgår av själva svaret, men kolumnerna behöver inte ha samma namn. Så följande kommer att fungera också (förutsatt att kolumnerna finns i sina respektive tabeller):

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

Dessutom behöver de inte ens vara riktiga kolumner i tabellen. Ett av exemplen för att transformera data som jag använder ganska ofta är:

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;

Så, eftersom det kanske är mer uppenbart nu, är regeln att så länge som SELECT-frågan returnerar samma antal kolumner som INSERT-frågan behöver, kan den användas i stället för VALUES.



  1. BIN_TO_NUM() Funktion i Oracle

  2. Prestandagränser för logiska replikeringslösningar

  3. Arbeta med MySQL-databasmotorer

  4. Anslutningssträngsparametrar för Excel-datakällor