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

Pourquoi mon instruction MySQL INSERT ... SELECT donne-t-elle « L'opérande doit contenir 1 colonne(s) » ?

DDD
Libérer: 2024-12-04 13:42:12
original
946 Les gens l'ont consulté

Why Does My MySQL INSERT ... SELECT Statement Result in

Erreur MySQL : "L'opérande doit contenir 1 colonne(s)"

Lors de l'exécution d'une instruction INSERT à l'aide d'une clause SELECT dans MySQL, vous peut rencontrer l'erreur "L'opérande doit contenir 1 colonne(s)". Cette erreur se produit lorsque la clause SELECT renvoie plus d'une colonne, violant le format attendu de l'instruction INSERT.

Pour résoudre ce problème, suivez la syntaxe correcte d'une instruction INSERT avec une clause SELECT :

INSERT INTO MyTable  (PriKey, Description)
       SELECT ForeignKey, Description
       FROM SomeView
Copier après la connexion

Dans votre requête spécifique, supprimez les parenthèses de la clause SELECT :

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

De plus, l'erreur "Le SELECT examinerait plus de MAX_JOIN_SIZE lignes ; vérifiez votre WHERE et utilisez SET SQL_BIG_SELECTS=1 ou SET SQL_MAX_JOIN_SIZE=# si le SELECT est correct." indique que la requête de référence croisée peut aboutir à un ensemble de résultats volumineux. Pour autoriser l'opération, exécutez l'instruction suivante avant d'exécuter la requête INSERT :

SET SQL_BIG_SELECTS = 1
Copier après la connexion

Notez que cela peut encore entraîner un temps d'exécution long.

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