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!