Mysql
 sql >> Base de données >  >> RDS >> Mysql

Correction "ERROR 3942 (HY000):Chaque ligne d'une clause VALUES doit avoir au moins une colonne" lors de l'utilisation de l'instruction VALUES dans MySQL

Si vous obtenez une erreur indiquant "ERREUR 3942 (HY000) :chaque ligne d'une clause VALUES doit avoir au moins une colonne " dans MySQL, vous pourriez avoir un constructeur de ligne vide lors de l'utilisation de VALUES déclaration.

Pour résoudre ce problème, assurez-vous d'avoir au moins une valeur dans chaque ROW() clause dans les VALUES déclaration.

Exemple d'erreur

Voici un exemple de code qui génère l'erreur :

VALUES ROW();

Résultat :

ERROR 3942 (HY000): Each row of a VALUES clause must have at least one column, unless when used as source in an INSERT statement.

C'est un exemple très simple, mais sa simplicité nous montre exactement ce qui n'allait pas. J'utilise les VALUES instruction, mais avec un ROW() vide clause.

Solution

Pour résoudre le problème, il nous suffit de fournir au moins une valeur pour le ROW() clause :

VALUES ROW('Jet');

Résultat :

+----------+
| column_0 |
+----------+
| Jet      |
+----------+

Habituellement, nous incluons plus d'une valeur dans chaque ROW() clause, et peut-être plus d'un ROW() clause. Par exemple :

VALUES ROW(1, 'Jet', 'Black'), ROW(2, 'Faye', 'Valentine');

Résultat :

+----------+----------+-----------+
| column_0 | column_1 | column_2  |
+----------+----------+-----------+
|        1 | Jet      | Black     |
|        2 | Faye     | Valentine |
+----------+----------+-----------+

Dans tous les cas, nous devons fournir au moins une valeur à chaque ROW() clause.