Maison >base de données >tutoriel mysql >Comment puis-je copier des données entre des tables MySQL avec différentes structures de champs ?

Comment puis-je copier des données entre des tables MySQL avec différentes structures de champs ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-23 02:33:13193parcourir

How Can I Copy Data Between MySQL Tables with Different Field Structures?

Copie de données entre des tables dans MySQL

Problème :
Comment transférer des données à partir d'une table existante (appelé désormais Tableau 1) à une table nouvellement créée (Tableau 2) dans MySQL ? Le tableau 1 contient des champs spécifiques, tandis que le tableau 2 est conçu avec un ensemble de champs différent.

Solution :

Pour répondre à cette exigence, MySQL fournit une méthode pour insérer des données dans une table en sélectionnant dans une autre table à l’aide de la syntaxe INSERT INTO. Cette technique peut être utilisée pour copier sélectivement les champs du tableau 1 dans le tableau 2.

La requête suivante accomplit efficacement la tâche :

INSERT INTO table2 (st_id, uid, changed, status, assign_status)
SELECT st_id, from_uid, now(), 'Pending', 'Assigned'
FROM table1;

Cette requête fonctionne comme suit :

  • La table cible, table2, est spécifiée dans l'instruction INSERT INTO.
  • Les champs de la table2 qui recevront les données sont répertoriés entre parenthèses.
  • L'instruction SELECT définit les données à copier du tableau 1.
  • Les colonnes du tableau 1 sont mappées aux champs correspondants du tableau 2. Dans ce cas, st_id, from_uid, l'horodatage actuel (now()), 'Pending' et 'Assigned' sont copiés dans table2.
  • Si l'intégralité de l'ensemble de données du tableau 1 doit être copié, un point-virgule (;) doit être utilisé pour terminer la requête. Alternativement, une clause WHERE peut être ajoutée à l'instruction SELECT pour sélectionner un sous-ensemble spécifique de lignes pour l'opération de copie.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn