MySQL INSERT INTO SELECT SET - PullRequest
       16

MySQL INSERT INTO SELECT SET

0 голосов
/ 19 сентября 2018

Я пытаюсь скопировать таблицу в столбцы другой таблицы, но поля даты недопустимы (даты похожи на '00000000') для некоторых столбцов, поэтому я пытаюсь проверить, является ли дата действительнойи я пытаюсь установить его в NULL, если так.Например,

INSERT INTO table1 (ID, FirstName, LastName, @BD) SELECT * FROM table2
SET Birthday = IF(@BD = '00000000', NULL, CAST(@BD as DATE))

Этот формат работает для LOAD при загрузке данных из CSV-файла, но выдает ошибку с сообщением о неправильном синтаксисе.Кроме того, столбцы таблицы 2 находятся в следующем порядке: ID, Имя, Фамилия и День рождения.Заранее спасибо!

1 Ответ

0 голосов
/ 19 сентября 2018

Вы пробовали конвертировать во время выбора вместо

INSERT INTO table1 (ID, FirstName, LastName, Birthday) 
SELECT ID, FirstName, LastName,
  CASE BirthDay 
    WHEN '00000000' THEN NULL
    ELSE CAST(BirthDay as DATE) 
  END 
FROM table2
...