sql >> Databasteknik >  >> RDS >> Mysql

Fixa "ERROR 3942 (HY000):Varje rad i en VALUES-sats måste ha minst en kolumn" när du använder VALUES-satsen i MySQL

Om du får ett felmeddelande som lyder "ERROR 3942 (HY000):Varje rad i en VALUES-sats måste ha minst en kolumn ” i MySQL kan du ha en tom radkonstruktor när du använder VALUES uttalande.

För att åtgärda det här problemet, se till att du har minst ett värde i varje ROW() sats i VALUES uttalande.

Exempel på felet

Här är ett exempel på kod som resulterar i felet:

VALUES ROW();

Resultat:

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

Detta är ett väldigt enkelt exempel, men dess enkelhet visar oss exakt vad som gick fel. Jag använder VALUES sats, men med en tom ROW() klausul.

Lösning

För att åtgärda problemet behöver vi bara ange minst ett värde för ROW() klausul:

VALUES ROW('Jet');

Resultat:

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

Vanligtvis skulle vi inkludera mer än ett värde i varje ROW() sats, och kanske mer än en ROW() klausul. Till exempel:

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

Resultat:

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

Oavsett vilket måste vi tillhandahålla minst ett värde till varje ROW() klausul.


  1. SQL Server Collection Inventory Script -3

  2. Dålig standby

  3. php / Mysql bästa trädstruktur

  4. Fånga länkade serverfel