Maison > base de données > tutoriel mysql > MySQL INSERT... Erreur SELECT : pourquoi « l'opérande doit contenir 1 colonne(s) » ?

MySQL INSERT... Erreur SELECT : pourquoi « l'opérande doit contenir 1 colonne(s) » ?

Susan Sarandon
Libérer: 2024-12-11 10:21:15
original
437 Les gens l'ont consulté

MySQL INSERT ... SELECT Error: Why

MySQL : Comprendre l'erreur de syntaxe "L'opérande doit contenir 1 colonne(s)"

La requête et l'erreur

Lorsque vous tentez d'exécuter une instruction INSERT à l'aide d'une clause SELECT, comme indiqué ci-dessous, vous rencontrez un error :

INSERT INTO VOUCHER (VOUCHER_NUMBER, BOOK_ID, DENOMINATION)
SELECT (a.number, b.ID, b.DENOMINATION) 
FROM temp_cheques a, BOOK b
WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;
Copier après la connexion

Le message d'erreur que vous recevez est :

Error: Operand should contain 1 column(s)
SQLState:  21000
ErrorCode: 1241
Copier après la connexion

Correction de la syntaxe

L'erreur indique un problème de syntaxe avec le SELECT clause. Pour résoudre ce problème, supprimez les parenthèses de la clause SELECT et écrivez-la comme suit :

INSERT INTO VOUCHER (VOUCHER_NUMBER, BOOK_ID, DENOMINATION)
SELECT a.number, b.ID, b.DENOMINATION 
FROM temp_cheques a, BOOK b
WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;
Copier après la connexion

Explication

La syntaxe correcte pour une instruction INSERT utilisant une clause SELECT nécessite que la clause SELECT renvoie une seule colonne, et non plusieurs colonnes entre parenthèses.

Supplémentaire Considérations

Si vous continuez à rencontrer des problèmes après avoir corrigé la syntaxe, considérez les éléments suivants :

  • Assurez-vous qu'il n'y a pas de conditions de jointure croisée dans la clause WHERE, qui peuvent conduire à des combinaisons de lignes excessives.
  • Vérifiez la taille des données dans les tables BOOK et temp_cheques. Les ensembles de données volumineux peuvent nécessiter une augmentation de la variable système SQL_BIG_SELECTS pour permettre des requêtes plus volumineuses.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal