Частично вставить данные в таблицу

#mysql #sql

#mysql #sql

Вопрос:

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

введите описание изображения здесь

Мой запрос выглядит следующим образом:

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

#1064 — У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования вблизи ЗНАЧЕНИЙ ‘1030, 1100, дата, технология)(‘356-635-3633’, ‘356-635-3633’, ‘2019-04-07’, ‘ Th’ в строке 1

Запрос, подобный этому, работает, хотя:

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

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

Ответ №1:

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

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

Из документации:

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

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

ПРИМЕЧАНИЕ: day и date соответствуют названиям функций MySQL. Использование их подобным образом не приводит к возникновению ошибки, но все равно было бы неплохо окружить их обратными метками, просто чтобы избежать какой-либо двусмысленности, следовательно:

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