Maison > base de données > tutoriel mysql > 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 ?

DDD
Libérer: 2024-10-26 22:41:30
original
510 Les gens l'ont consulté

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 :

<code class="sql">CREATE  TABLE IF NOT EXISTS `erp`.`je_menus` (
    ...
    `create_date` TIMESTAMP NOT NULL DEFAULT  '0000-00-00 00:00:00',
    ...
) </code>
Copier après la connexion

Pour résoudre cette erreur, il est crucial de comprendre le mode SQL MySQL, 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 le comportement souhaité.
  • Utilisez l'option IGNORE : Si vous en avez absolument besoin pour 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é.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal