sql >> Database >  >> RDS >> Mysql

MySQL invoegen vanuit de ene database in een andere

Uw zoekopdracht zou als volgt moeten gaan:

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

UPDATE

Aangezien dit antwoord meer aandacht krijgt dan ik had verwacht, zou ik dit antwoord moeten uitbreiden. Allereerst is het misschien niet duidelijk uit het antwoord zelf, maar de kolommen hoeven niet dezelfde naam te hebben. Dus het volgende werkt ook (ervan uitgaande dat de kolommen in hun respectievelijke tabellen voorkomen):

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

Bovendien hoeven het niet eens echte kolommen in de tabel te zijn. Een van de voorbeelden voor het transformeren van gegevens die ik vaak gebruik is:

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;

Dus, zoals het nu misschien meer voor de hand ligt, is de regel dat zolang de SELECT-query hetzelfde aantal kolommen retourneert als de INSERT-query nodig heeft, deze kan worden gebruikt in plaats van VALUES.



  1. Pgbackrest Herstellen en herstellen Delta

  2. Vreemde sleutels, blokkeren en updateconflicten

  3. Hoe meerdere tekens in SQL vervangen?

  4. Gegevenscontrole in NHibernate en SqlServer