"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi est-ce que j'obtiens « Valeur par défaut non valide pour le champ « créer_date » » dans MySQL et comment puis-je y remédier ?

Pourquoi est-ce que j'obtiens « Valeur par défaut non valide pour le champ « créer_date » » dans MySQL et comment puis-je y remédier ?

Publié le 2024-11-21
Parcourir:540

Why Am I Getting \

"Valeur par défaut non valide pour le champ 'create_date' : Comprendre le mode SQL NO_ZERO_DATE"

Dans une instruction de création SQL récente, vous rencontrez l'erreur "'Valeur par défaut non valide pour 'create_date'" pour le SQL suivant :

CREATE  TABLE IF NOT EXISTS `erp`.`je_menus` (
    ...
    `create_date` TIMESTAMP NOT NULL DEFAULT  '0000-00-00 00:00:00',
    ...
) 

Pour résoudre cette erreur, il est crucial de comprendre le mode MySQL SQL, en particulier le paramètre NO_ZERO_DATE. Ce paramètre interdit l'utilisation de « 0000-00-00 » comme date valide en mode strict. Cela se produit car SQL traite les valeurs booléennes comme des nombres (par exemple, TRUE = 1, FALSE = 0) et stocke les dates sous forme d'entiers représentant le nombre de jours depuis un point de référence. Par conséquent, l'utilisation de « 0000-00-00 » entre en conflit avec la valeur « 0 » utilisée pour les valeurs booléennes.

Pour résoudre ce problème, envisagez les options suivantes :

  • Désactivez le mode NO_ZERO_DATE : Dans votre instruction SQL, incluez l'instruction 'SET SQL_MODE = "NO_ZERO_IN_DATE";' avant de créer le tableau. Cela désactive temporairement le mode NO_ZERO_DATE, vous permettant de définir « 0000-00-00 » comme valeur par défaut pour create_date.
  • Utilisez une valeur par défaut valide : Remplacez « 0000-00-00 00 ». :00:00' avec une date par défaut valide dans l'instruction SQL, telle que 'CURRENT_TIMESTAMP' ou NULL, selon la valeur souhaitée. comportement.
  • Utilisez l'option IGNORE : Si vous devez absolument utiliser '0000-00-00 00:00:00', incluez l'option IGNORE dans l'instruction SQL. Cependant, cela peut entraîner des incohérences potentielles des données et n'est généralement pas recommandé.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3