Mysql
 sql >> база данни >  >> RDS >> Mysql

Поправете „ГРЕШКА 3942 (HY000):Всеки ред от клауза VALUES трябва да има поне една колона“, когато използвате инструкцията VALUES в MySQL

Ако получавате грешка, която гласи „ГРЕШКА 3942 (HY000):Всеки ред от клауза VALUES трябва да има поне една колона ” в MySQL, можете да имате празен конструктор на ред, когато използвате VALUES изявление.

За да отстраните този проблем, уверете се, че имате поне една стойност във всеки ROW() клауза в VALUES изявление.

Пример за грешката

Ето пример за код, който води до грешката:

VALUES ROW();

Резултат:

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

Това е много прост пример, но неговата простота ни показва какво точно се обърка. Използвам VALUES израз, но с празен ROW() клауза.

Решение

За да коригираме проблема, всичко, което трябва да направим, е да предоставим поне една стойност за ROW() клауза:

VALUES ROW('Jet');

Резултат:

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

Обикновено бихме включили повече от една стойност във всеки ROW() клауза и може би повече от един ROW() клауза. Например:

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

Резултат:

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

Така или иначе, трябва да предоставим поне една стойност за всеки ROW() клауза.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да задам избрания елемент в падащо меню

  2. Предимства на MySQLi пред MySQL

  3. Как да импортирате база данни с помощта на командния ред

  4. Остатъкът в PostgreSQL, MS SQL Server, MySQL и SQLite

  5. Защо MySQL не поддържа точност от милисекунди/микросекунди?