Insérer des données d'une table à une autre dans MySQL
L'insertion de données d'une table à une autre est une opération courante dans la gestion de bases de données. Cependant, cela peut parfois conduire à des erreurs si la syntaxe n'est pas correcte.
Considérons la requête suivante :
<code class="sql">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')</code>
Cette requête vise à insérer les données de la table tbl_magazine_subscription dans la table mt_magazine_subscription. Cependant, cela entraîne l'erreur :
#1136 - Column count doesn't match value count at row 1
Pour résoudre cette erreur, nous pouvons utiliser la syntaxe INSERT...SELECT. La requête mise à jour est :
<code class="sql">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</code>
Dans cette requête révisée, nous spécifions directement la valeur de la colonne d'état comme « 1 » dans l'instruction SELECT, garantissant que le nombre de valeurs correspond au nombre de colonnes dans l'instruction SELECT. table cible. Cette modification permet à l'insertion des données de se dérouler avec succès.
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!