MySQL INSERT INTO SELECT, SET

голоса
0

Я пытаюсь скопировать таблицу в столбцы другой таблицы, но поля даты не действительны (даты, как «00000000») для некоторых из столбцов, так что я пытаюсь проверить, если дата является действительной, и я м пытается установить его значение NULL, если так. Пример,

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

Этот формат работает НАГРУЗКИ при загрузке данных из файла CSV, но дает и ошибки говоря синтаксис является неправильным. Кроме того, TABLE2 столбцы в этом порядке ID, FirstName, LastName, и День рождения. Заранее спасибо!

Задан 19/09/2018 в 13:33
источник пользователем
На других языках...                            


1 ответов

голоса
3

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

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
Ответил 19/09/2018 в 13:44
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more