MySQL INSERT INTO SELECT SET

voix
0

J'essaie de copier une table pour les colonnes d'une autre table, mais les champs de date ne sont pas valides (date sont comme « 00000000 ») pour certaines des colonnes, donc je suis en train de vérifier si la date est valide et je m essayer de le définir NULL si oui. Exemple,

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

Ce format fonctionne pour la charge tandis que les données de chargement d'un fichier CSV, mais donne et la syntaxe erreur indiquant est erroné. En outre, les colonnes Table2 sont dans ce numéro de commande, FirstName, LastName et Anniversaire. Merci d'avance!

Créé 19/09/2018 à 13:33
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
3

Avez-vous essayé de convertir au cours de sélection à la place

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
Créé 19/09/2018 à 13:44
source utilisateur

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