Maison  >  Article  >  base de données  >  Comment corriger l'erreur « Incompatibilité du nombre de colonnes » lors du transfert de données entre des tables MySQL ?

Comment corriger l'erreur « Incompatibilité du nombre de colonnes » lors du transfert de données entre des tables MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-31 09:26:29982parcourir

How to Fix

Comment transférer des données d'une table à une autre dans MySQL

Face à la tâche de transférer des données d'une table à une autre, le L'instruction INSERT peut s'avérer utile. Dans votre cas spécifique, vous avez rencontré une erreur avec votre requête :

INSERT INTO mt_magazine_subscription ( 
      magazine_subscription_id, 
      subscription_name, 
      magazine_id, 
      status ) 
  VALUES ( 
      (SELECT magazine_subscription_id, 
              subscription_name, 
              magazine_id 
       FROM tbl_magazine_subscription 
       ORDER BY magazine_subscription_id ASC), '1')

Le message d'erreur indique que le nombre de colonnes dans l'instruction INSERT ne correspond pas au nombre de valeurs fournies. Le problème ici est que vous essayez d'insérer les résultats d'une sous-requête en tant que valeur unique, ce qui n'est pas possible.

La solution : INSERT...SELECT Syntaxe

Pour résoudre ce problème, vous devez utiliser la syntaxe INSERT...SELECT, qui vous permet d'insérer directement des données d'une table dans une autre. Voici la requête corrigée :

INSERT INTO mt_magazine_subscription ( 
      magazine_subscription_id, 
      subscription_name, 
      magazine_id, 
      status ) 
SELECT magazine_subscription_id, 
       subscription_name, 
       magazine_id, 
       '1'
FROM tbl_magazine_subscription
ORDER BY magazine_subscription_id ASC

Dans cette requête révisée :

  • La sous-requête est utilisée pour sélectionner les données appropriées dans tbl_magazine_subscription.
  • Le '1' la valeur de la colonne d'état est directement citée dans la clause SELECT.
  • Les colonnes de l'instruction INSERT et de la clause SELECT correspondent désormais, résolvant le problème de non-concordance du nombre de colonnes.

Avec cela correction, votre requête devrait réussir à insérer les données de tbl_magazine_subscription dans mt_magazine_subscription avec la valeur d'état spécifiée.

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