Вставить данные частично в таблицу - PullRequest
1 голос
/ 08 апреля 2019

Я пытаюсь вставить в свою таблицу что-то с частичными данными и оставляю остальные значения по умолчанию, но почему-то он говорит неверный синтаксис

enter image description here

Мой запрос такой:

INSERT INTO day 
    (1030, 1100, date, tech) 
    VALUES ('356-635-3633', '356-635-3633', '2019-04-07', 'Thy')

# 1064 - у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования вблизи '1030, 1100, date, tech) VALUES (' 356-635-3633 ',' 356-635-3633 ',' 2019-04-07 ',' Th 'в строке 1

Такой запрос работает, хотя:

INSERT INTO day (date, tech) VALUES ('2019-04-07', 'Thy')

Тип данных для всех этих столбцов: varchar (30)

1 Ответ

2 голосов
/ 08 апреля 2019

Вам необходимо заключить в кавычки эти полностью-цифровые идентификаторы, используя обратные метки;

INSERT INTO day 
    (`1030`, `1100`, date, tech) 
    VALUES ('356-635-3633', '356-635-3633', '2019-04-07', 'Thy')

С документация :

Идентификаторы могут начинаться сцифра, но если она не указана в кавычках, не может состоять только из цифр.

Демонстрация на DB Fiddle (вы можете раскомментировать исходный список столбцов, чтобы сгенерировать ошибку).

NB: day и date соответствуют именам функций MySQL.Использование их, как вы, не приводит к ошибкам, но все равно было бы неплохо окружить их обратными пробками, просто чтобы избежать двусмысленности, следовательно:

INSERT INTO `day`
    (`1030`, `1100`, `date`, tech) 
    VALUES ('356-635-3633', '356-635-3633', '2019-04-07', 'Thy')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...