Migrer les données d'une base de données à une autre
P粉509383150
P粉509383150 2023-08-24 09:58:47
0
2
564

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

P粉509383150
P粉509383150

répondre à tous (2)
P粉985686557
INSERT INTO db1.table SELECT * FROM db2.table;

Si vous souhaitez copier des données dans la même table dans une base de données différente.

    P粉663883862

    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 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) :

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

    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 :

    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, 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.

      Derniers téléchargements
      Plus>
      effets Web
      Code source du site Web
      Matériel du site Web
      Modèle frontal
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!