Сломанный оператор вставки - PullRequest
0 голосов
/ 09 февраля 2019

Что не так с этим оператором вставки?Я просмотрел его несколько раз и не вижу, что не так.

INSERT INTO tasks
       (task_id, priority, limit, total_active, time_limit, start_time, params)
VALUES ("d", "9", "1", "0", "1549699912", "1549696366", "");
+--------------+------------+------+-----+---------+----------------+
| Field        | Type       | Null | Key | Default | Extra          |
+--------------+------------+------+-----+---------+----------------+
| id           | int(11)    | NO   | PRI | NULL    | auto_increment |
| task_id      | varchar(2) | NO   |     | NULL    |                |
| priority     | tinyint(1) | NO   |     | 0       |                |
| limit        | int(11)    | NO   |     | NULL    |                |
| total_active | int(11)    | NO   |     | NULL    |                |
| time_limit   | int(11)    | NO   |     | NULL    |                |
| start_time   | int(11)    | NO   |     | NULL    |                |
| params       | tinytext   | YES  |     | NULL    |                |
+--------------+------------+------+-----+---------+----------------+

ОШИБКА 1064 (42000): в синтаксисе SQL возникла ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'limit, total_active, time_limit, start_time, params) VALUES ("1", "d", "9", "1",' в строке 1

Ответы [ 3 ]

0 голосов
/ 09 февраля 2019

Не используйте кавычки для номера

INSERT INTO tasks(task_id, priority, `limit`, total_active, time_limit, start_time, params) 
VALUES ("d", 9, 1, 0, 1549699912, 1549696366, "");

будьте осторожны, потому что сообщение об ошибке, которое у вас есть в вашем вопросе, не соответствует отображаемому вами коду .. у вас есть сообщение об ошибке

 VALUES ("1", "d", "9", 

но в коде у вас есть другое значение

 VALUES ("d",  ...

и, как подсказал Матиас Бургер, оберните зарезервированное слово бэктиками

INSERT INTO tasks(task_id, priority, `limit`, total_active, time_limit, start_time, params) 
VALUES ("d", 9, 1, 0, 1549699912, 1549696366, "");
0 голосов
/ 09 февраля 2019

LIMIT - ключевое слово в sql, вам нужно добавить двойные кавычки вокруг него.

INSERT INTO tasks(task_id, priority, "limit", total_active, time_limit, 
    start_time, params) VALUES ("d", "9", "1", "0", "1549699912", "1549696366", "");

edit: если это не сработает, вы можете использовать обратные метки для экранирования:

INSERT INTO tasks(task_id, priority, `limit`, total_active, time_limit, 
    start_time, params) VALUES ("d", "9", "1", "0", "1549699912", "1549696366", "");
0 голосов
/ 09 февраля 2019

Столбец приоритета по умолчанию 0. Вы можете пропустить его во вставке.Попробуйте это.

 INSERT INTO tasks( task_id, limit, total_active, time_limit, start_time, params) VALUES 
( 'd',  1, 0, 1549699912, 1549696366, null);

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...