Maison > base de données > tutoriel mysql > Pourquoi mon instruction MySQL INSERT obtient-elle l'erreur « L'opérande doit contenir 1 colonne(s) » ?

Pourquoi mon instruction MySQL INSERT obtient-elle l'erreur « L'opérande doit contenir 1 colonne(s) » ?

DDD
Libérer: 2024-12-17 01:59:25
original
590 Les gens l'ont consulté

Why Does My MySQL INSERT Statement Get the

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

Message d'erreur de MySQL "L'opérande doit contenir 1 colonne(s)" indique une erreur de syntaxe liée au nombre de colonnes renvoyées par une sous-requête utilisée dans le SELECT d'une instruction INSERT

Dans ce cas spécifique, lors de la tentative d'insertion d'enregistrements dans la table VOUCHER à l'aide d'une clause SELECT qui joint deux tables (temp_cheques et BOOK), l'utilisateur a rencontré cette erreur. La requête tentait d'insérer plusieurs colonnes (numéro, ID et DENOMINATION) de la clause SELECT dans une seule colonne (VOUCHER_NUMBER).

Correction de la syntaxe

Pour Pour résoudre l'erreur, l'utilisateur doit s'assurer que la clause SELECT ne renvoie qu'une seule colonne, qui deviendra la valeur de la colonne cible dans l'instruction INSERT. Une façon d'y parvenir consiste à supprimer les parenthèses de la clause SELECT, conformément à la syntaxe correcte mise en évidence dans la réponse fournie :

INSERT INTO VOUCHER (VOUCHER_NUMBER)
SELECT a.number
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

Considérations supplémentaires

Dans En plus de corriger la syntaxe, il est important de noter l'avertissement concernant l'opération de référence croisée entraînant une requête potentiellement volumineuse si BOOK et temp_cheques contiennent de nombreuses lignes. Pour permettre l'exécution de la requête, il peut être nécessaire de définir SQL_BIG_SELECTS = 1 avant de l'exécuter, comme mentionné dans la réponse.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal