Maison  >  Article  >  base de données  >  Comment résoudre l'erreur « Le nombre de colonnes ne correspond pas au nombre de valeurs » lors de l'insertion de données dans MySQL ?

Comment résoudre l'erreur « Le nombre de colonnes ne correspond pas au nombre de valeurs » lors de l'insertion de données dans MySQL ?

DDD
DDDoriginal
2024-10-26 18:24:29390parcourir

How to Resolve

Insertion de données d'une table à une autre dans MySQL

Lorsque vous essayez d'insérer des données d'une table dans une autre à l'aide d'une requête telle que :

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

vous pouvez rencontrer le message d'erreur :

#1136 - Column count doesn't match value count at row 1

Cela est dû au fait que le nombre de colonnes spécifié dans l'instruction INSERT ne correspond pas au nombre de valeurs fournies dans la sous-requête.

Solution

Pour résoudre ce problème, utilisez la syntaxe INSERT...SELECT, comme suit :

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 corrigée, le '1 La valeur de la colonne d'état est citée directement dans la partie SELECT. En utilisant la syntaxe INSERT...SELECT, vous spécifiez les colonnes dans lesquelles insérer et sélectionnez les valeurs à insérer à partir d'une autre table ou sous-requête, en vous assurant que le nombre de colonnes et de valeurs correspondent.

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