Maison >base de données >tutoriel mysql >Comment insérer correctement des données dans une table MySQL à l'aide de SELECT et des valeurs par défaut ?
Insérer dans une table MySQL avec des valeurs de sélection et par défaut : résolution des erreurs
Dans MySQL, insertion de données dans une table à l'aide d'instructions de sélection et de valeurs par défaut peut parfois conduire à des erreurs. Abordons les messages d'erreur spécifiques rencontrés dans les requêtes fournies.
Erreur 1 : erreur MySQL
La requête INSERT INTO def (catid, titre, page, publication) ( SELECT catid, title from abc),'page','yes') entraîne une erreur MySQL car il tente d'insérer plusieurs ensembles de données sans spécifier les noms de colonnes par défaut valeurs.
Erreur 2 : incompatibilité du nombre de colonnes
La requête INSERT INTO def (catid, titre, page, publication) VALUES((SELECT catid, title from abc) ,'page','yes')) provoque une erreur d'incompatibilité du nombre de colonnes car il spécifie plus de valeurs dans la sous-requête SELECT que dans VALUES clause.
Solution
Pour résoudre ces erreurs, la bonne façon d'insérer dans une table avec des instructions SELECT et des valeurs par défaut est la suivante :
INSERT INTO def (catid, title, page, publish) SELECT catid, title, 'page', 'yes' FROM `abc`
Cette requête spécifie explicitement les valeurs par défaut pour page (« page ») et publier (« oui ») dans l'instruction SELECT. En faisant correspondre les noms de colonnes dans la clause INSERT INTO avec les colonnes sélectionnées dans la sous-requête SELECT, l'erreur de nombre de colonnes est également évitée.
Cette requête mise à jour devrait réussir à insérer les données de la table abc dans la table def, ainsi que les valeurs par défaut pour la page et la publication.
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!