Je dois migrer des données d’une base de données à une autre, toutes deux sur le même système local.
Les noms de table et de colonne sont différents et je n'ai pas besoin de migrer toutes les colonnes de l'ancienne base de données, donc
Sélectionner *
ne fonctionne pas pour moi.
INSERT INTO newDatabase.table1(Column1, Column2); SELECT oldDatabase.table1(column1, column2) FROM oldDatabase.table1
Mais j'obtiens un #1064 - Erreur de syntaxe
Quel est le problème avec ma requête et comment puis-je y remédier ?
Merci d'avance
Si vous souhaitez copier des données dans la même table dans une base de données différente.
Votre requête devrait ressembler à ceci :
Mise à jour
Étant donné que cette réponse a attiré plus d'attention que prévu, je devrais développer cette réponse. Premièrement, cela n’est peut-être pas évident d’après la réponse elle-même, mais les noms de colonnes n’ont pas besoin d’être les mêmes. Ainsi, ce qui suit fonctionnera également (en supposant que les colonnes existent dans leurs tableaux respectifs) :
De plus, il n'est même pas nécessaire qu'il s'agisse de véritables colonnes du tableau. Un exemple de transformation de données que j'utilise souvent est :
Donc, la règle la plus évidente maintenant est peut-être que tant que la requête SELECT renvoie le même nombre de colonnes que celui requis par la requête INSERT, elle peut être utilisée à la place de VALEURS.