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

MySQL Indsæt fra en database i en anden

Din forespørgsel skulle gå sådan her:

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

OPDATERING

Da dette svar får mere opmærksomhed, end jeg selv havde forventet, bør jeg uddybe dette svar. Først og fremmest er det måske ikke indlysende ud fra selve svaret, men kolonnerne behøver ikke at have samme navn. Så følgende vil også fungere (forudsat at kolonnerne findes i deres respektive tabeller):

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

Desuden behøver de ikke engang at være rigtige kolonner i tabellen. Et af eksemplerne på transformation af data, som jeg bruger ret ofte, er:

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å som det måske er mere indlysende nu, er reglen, at så længe SELECT-forespørgslen returnerer det samme antal kolonner, som INSERT-forespørgslen har brug for, kan den bruges i stedet for VALUES.



  1. Sådan fungerer TIME_FORMAT() i MariaDB

  2. SQLite returnerede en fejlkode på 14

  3. Sådan tilføjes total række i MySQL

  4. Hvad er Javas JPA-teknologi?