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 ?

Comment insérer correctement des données dans une table MySQL à l'aide de SELECT et des valeurs par défaut ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-04 03:15:13903parcourir

How to Correctly Insert Data into a MySQL Table Using SELECT and Default Values?

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!

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