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