ERROR 1064 (42000): у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного использования синтаксиса

Пока я пытаюсь вставить строку в свою таблицу, я получаю следующие ошибки:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near ''filename') 
VALUES ('san', 'ss', 1, 1, 1, 1, 2, 1, 1, 'sment', 'notes','sant' at line 1

пожалуйста, помогите мне.

mysql> desc risks;
+-----------------+--------------+------+-----+---------------------+----------------+
| Field           | Type         | Null | Key | Default             | Extra          |
+-----------------+--------------+------+-----+---------------------+----------------+
| id              | int(11)      | NO   | PRI | NULL                | auto_increment |
| status          | varchar(20)  | NO   |     | NULL                |                |
| subject         | varchar(100) | NO   |     | NULL                |                |
| reference_id    | varchar(20)  | NO   |     |                     |                |
| location        | int(11)      | NO   |     | NULL                |                |
| category        | int(11)      | NO   |     | NULL                |                |
| team            | int(11)      | NO   |     | NULL                |                |
| technology      | int(11)      | NO   |     | NULL                |                |
| owner           | int(11)      | NO   |     | NULL                |                |
| manager         | int(11)      | NO   |     | NULL                |                |
| assessment      | longtext     | NO   |     | NULL                |                |
| notes           | longtext     | NO   |     | NULL                |                |
| submission_date | timestamp    | NO   |     | CURRENT_TIMESTAMP   |                |
| last_update     | timestamp    | NO   |     | 0000-00-00 00:00:00 |                |
| review_date     | timestamp    | NO   |     | 0000-00-00 00:00:00 |                |
| mitigation_id   | int(11)      | NO   |     | NULL                |                |
| mgmt_review     | int(11)      | NO   |     | NULL                |                |
| project_id      | int(11)      | NO   |     | 0                   |                |
| close_id        | int(11)      | NO   |     | NULL                |                |
| submitted_by    | int(11)      | NO   |     | 1                   |                |
| filename        | varchar(30)  | NO   |     | NULL                |                |
+-----------------+--------------+------+-----+---------------------+----------------+
21 rows in set (0.00 sec)

**mysql> INSERT INTO risks (`status`, `subject`, `reference_id`, `location`, `category`,
`team`, `technology`, `owner`, `manager`, `assessment`, `notes`,'filename')     VALUES 
('san', 'ss', 1, 1, 1, 1, 2, 1, 1, 'sment', 'notes','santu');**

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near ''filename') 
VALUES ('san', 'ss', 1, 1, 1, 1, 2, 1, 1, 'sment', 'notes','sant' at line 1

Ответ 1

В MySQL существуют два разных типа кавычек. Вам нужно использовать `для имен столбцов и 'для строк. Поскольку вы использовали 'для столбца имени файла, парсер запросов запутался. Либо удалите кавычки вокруг всех имен столбцов, либо измените имя файла на `filename`. Тогда он должен работать.

Ответ 2

Не указывайте имя файла столбца

mysql> INSERT INTO risks (status, subject, reference_id, location, category, team,    technology, owner, manager, assessment, notes,filename) 
VALUES ('san', 'ss', 1, 1, 1, 1, 2, 1, 1, 'sment', 'notes','santu');

Ответ 3

C:\xampp>mysql -u root -p mydatabase < C:\DB_Backups\stage-new.sql
Enter password:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma
nual that corresponds to your MySQL server version for the right syntax to use n
ear 'stage-new.sql

----lot of space----

' at line 1

Причина в том, что когда я сбросил DB, я использовал следующую команду:

mysqldump -h <host> -u <username> -p <database> > dumpfile.sql
dumpfile.sql

По ошибке dumpfile.sql дважды добавляется в синтаксис.

Решение: Я удалил текст dumpfile.sql, добавленный в первую строку экспортированного файла дампа.

Ответ 4

Эта ошибка возникает из-за того, что та же таблица существует в 2 базе данных, например, у вас есть база данных для project1 и в которой у вас есть emp таблицы, и снова у вас есть другая база данных, например project2, и в которой у вас есть таблица emp, а затем, когда вы пытаетесь вставить что-то внутри базы данных без имени вашей базы данных вы получите сообщение об ошибке

Решение для этого, когда вы используете mysql-запрос, также укажите имя базы данных вместе с именем таблицы.

ИЛИ

Не использовать Зарезервированные ключевые слова, такие как KEY, как имя столбца

Ответ 5

Это решение для окон:

  1. Откройте командную строку в режиме администратора.
  2. Перейти к следующему пути: C:\Program Files\MySQL\MySQL Server 5.6\bin
  3. Выполнить команду: mysqldump -h 127.0.01 -u root -proot db table1 table2> result.sql

Ответ 6

Я, честно говоря, подумал, что это была простая ошибка, связанная с орфографическими ошибками, в частности, в словах санту и санту:

mysql> INSERT INTO риски (status, subject, reference_id, location, category, team, technology, owner, manager, assessment, notes, "имя файла") VALUES ('san', 'ss', 1, 1, 1, 1, 2, 1, 1, 'sment', 'notes', ||| 'santu' |||);

ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с '' filename ') VALUES (' san ',' ss ', 1, 1, 1, 1, 2, 1, 1,' sment ', 'notes', || 'sant' || в строке 1

но я рад, что проблема была решена.

Ответ 7

Я столкнулся с этой же ошибкой: ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с ', завершено)' в строке 1

Это был ввод, который я ввел на терминале: mysql> создать таблицы задач (описание, выполнено);

Решение: Для каждого типа столбца вы должны указать тип содержимого, которое они будут содержать. Это может быть текст, целое число, переменная, логическое значение. Существует много различных типов данных.

mysql> создать таблицы задач (текст описания, завершено логическое значение);

Запрос в порядке, затронуто 0 строк (0,02 с)

Сейчас прошло успешно.

Ответ 8

Привет, друзья,

             Executing dump query in terminal then it will work

mysql -u root -p >