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;
Le message d'erreur que vous recevez est :
Error: Operand should contain 1 column(s) SQLState: 21000 ErrorCode: 1241
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;
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 :
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!