Mysql
 sql >> Base de données >  >> RDS >> Mysql

Insertion MySQL dans une base de données dans une autre

Votre requête devrait ressembler à ceci :

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

MISE À JOUR

Étant donné que cette réponse attire plus d'attention que je ne l'avais même prévu, je devrais développer cette réponse. Tout d'abord, cela peut ne pas être évident à partir de la réponse elle-même, mais les colonnes n'ont pas besoin d'avoir le même nom. Ainsi, ce qui suit fonctionnera également (en supposant que les colonnes existent dans leurs tables respectives) :

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

De plus, ils n'ont même pas besoin d'être de vraies colonnes dans la table. L'un des exemples de transformation de données que j'utilise assez souvent est :

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;

Donc, comme cela pourrait être plus évident maintenant, la règle est que, tant que la requête SELECT renvoie le même nombre de colonnes que la requête INSERT a besoin, elle peut être utilisée à la place de VALUES.