Ошибка SQL «Количество столбцов не соответствует количеству значений в строке» - но я проверил, что количество столбцов равно количеству значений

Я пытался создать очень простую таблицу SQL, которая ссылается на более крупную таблицу - эта таблица работает нормально, но вторая таблица постоянно выдает классическую ошибку «количество столбцов не соответствует количеству значений в строке».

CREATE TABLE NonHeadlessDistro 
( 
Headless INT,
Proprietary INT,
EaseInstall INT,
SimilarTo VARCHAR(28), 
Gnome INT,
KDE INT,
LXDE INT,
XFCE INT,
MATE INT,
Cinna INT
);

INSERT INTO NonHeadlessDistro (Headless, Proprietary, EaseInstall, 
SimilarTo, Gnome, KDE, LXDE, XFCE, MATE, Cinna)
VALUES ('0','1','2','macOS','1','1','1','1','1','0'),
('0','4','4','Linux','1','1','1','1','0','0'),
('0','1','1','Windows','0','1','0','1','1','1'),
('0','2','2','Windows','0','0','1','1','0','0'),
('0','1','5','Linux','1','0','0','0','0','0'),
('0','1','4','Linux','1','0','0','0','0','0'),
('0','2','2','Linux','1','1','1','1','1','1'),
('0','3','5','Linux','1','1','1','1','1','1'),
('0','2','2','Linux','0','1','0','0','1','0'),
('0','1','2','Linux','0','0','1','0','0','0'),
('0','1','4','Linux' '1','1','0','0','0','0'),
('0','3','5','Linux','1','1','1','1','1','1'), 
('0','2','3','Linux','0','0','0','0','1','0'),
('0','3','5','Linux','1','1','1','1','1','1'),
('0','1','4','Linux','1','1','0','0','0','0'),
('0','5','2','Linux','1','0','1','0','1','0'),
('0','5','5','Linux','0','0','1','0','1','0'),
('0','5','4','Linux','1','0','0','0','0','0'),
('0','5','5','Linux','1','0','1','1','0','0'),
('0','2','3','Linux','1','1','1','0','0','0'),
('0','2','3','Linux','1','1','0','1','1','1'),
('0','2','3','Linux','0','0','1','0','0','0'),
('0','2','3','Linux','1','1','1','1','1','0'),
('0','2','1','Linux','1','1','1','1','1','1'),
('0','2','1','Linux','1','1','0','1','1','0');

SELECT linux_distro
FROM linux_distro LEFT JOIN NonHeadlessDistro
ON Headless
WHERE Headless  = "0";

Точное сообщение об ошибке выглядит так:

1 errors were found during analysis
1. 10 values were expected, but found 9. (near "(" at position 596)

MySQL said:
#1136 - Column count doesn't match count at row 11

Используя онлайн-средства проверки ошибок SQL, проблема, похоже, находится в строке INSERT INTO, но я полностью не понимаю, почему один из столбцов не был подтвержден, поскольку я проверил, что количество столбцов равно к количеству ЦЕННОСТЕЙ. Читая другие решения для ошибки, проблема обычно возникает в результате неправильных кавычек или пропущенных значений / столбцов, но, хоть убей, я не могу понять, что не так с моим SQL. Скорее всего, это невероятно простая ошибка, учитывая, что мои первоначальные ошибки с первой таблицей были решены добавлением отсутствующей точки с запятой. Любая помощь будет принята с благодарностью.

Обновлено: я слепой, я не мог видеть свою пропущенную запятую в строке 11. Однако я открыл еще одну банку червей - до того, как MySQL ожидал 10 значений и нашел только 9 значений, но с редактированием теперь ожидает 11 значений, и он может найти только 10. Теперь он также влияет на все 24 строки из

INSERT INTO NonHeadlessDistro (Headless, Proprietary, EaseInstall, 
SimilarTo, Gnome, KDE, LXDE, XFCE, MATE, Cinna)

до финала

('0','2','1','Linux','1','1','0','1','1','0'); 

строка, поэтому у меня одна и та же ошибка повторяется 24 раза. Я предполагаю, что здесь, вероятно, есть довольно фундаментальная проблема:

MySQL said:
#1136 - Column count doesn't match value count at row 1

Установлены ли у вас какие-либо триггеры для обновления другой таблицы, например таблицы аудита? Схему таблицы аудита также необходимо будет обновить.

Michael 10.04.2018 17:21

Почему вы вставляете строковые значения в целочисленные столбцы?

HoneyBadger 10.04.2018 17:23

Вы проверили строку 11, которая указана в сообщении об ошибке? В этой строке отсутствует запятая.

HoneyBadger 10.04.2018 17:26

Майк - я этого не делал

Crash Bandicoot 10.04.2018 17:43

HoneyBadger - похоже, я не сталкивался с какими-либо проблемами, связанными с вводом строковых значений, по крайней мере, в том, что касается диагностики ошибок.

Crash Bandicoot 10.04.2018 17:44

Я не думаю, что это связано с вашей текущей проблемой, но вы всегда должны использовать соответствующие типы данных.

HoneyBadger 10.04.2018 18:53
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
6
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Эта линия

('0','1','4','Linux' '1','1','0','0','0','0'),

отсутствует запятая

Другие вопросы по теме