Maison > base de données > tutoriel mysql > Pourquoi est-ce que j'obtiens « Valeur par défaut non valide pour \'create_date\'\ » lorsque j'utilise `0000-00-00 00:00:00` comme valeur par défaut pour un champ TIMESTAMP dans MySQL ?

Pourquoi est-ce que j'obtiens « Valeur par défaut non valide pour \'create_date\'\ » lorsque j'utilise `0000-00-00 00:00:00` comme valeur par défaut pour un champ TIMESTAMP dans MySQL ?

DDD
Libérer: 2024-10-31 15:37:01
original
248 Les gens l'ont consulté

Why am I getting

Correction d'une valeur par défaut non valide pour le champ TIMESTAMP dans MySQL

Lors de la tentative de création d'une table avec un champ TIMESTAMP et de la spécification d'une valeur par défaut de ' 0000-00-00 00:00:00', vous pouvez rencontrer l'erreur "Valeur par défaut non valide pour 'create_date'." Cela est souvent dû à un paramètre de mode SQL du serveur MySQL.

Explication

Le mode SQL NO_ZERO_DATE impose une rigueur autour de la gestion des dates zéro. Il empêche l'insertion de '0000-00-00' comme date valide, le considérant comme une valeur invalide.

Solution

Pour résoudre l'erreur, vous pouvez soit :

  • Désactivez le mode SQL NO_ZERO_DATE :

    <code class="mysql">SET SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION';</code>
    Copier après la connexion
  • Utilisez l'option IGNORE pour autoriser l'insertion de dates nulles :

    <code class="mysql">CREATE TABLE IF NOT EXISTS `erp`.`je_menus` (
      `id` INT(11) NOT NULL AUTO_INCREMENT ,
      `name` VARCHAR(100) NOT NULL ,
      `description` VARCHAR(255) NOT NULL ,
      `live_start_date` DATETIME NULL DEFAULT NULL ,
      `live_end_date` DATETIME NULL DEFAULT NULL ,
      `notes` VARCHAR(255) NULL ,
      `create_date` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' IGNORE,
      `created_by` INT(11) NOT NULL ,
      `update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
      `updated_by` INT(11) NOT NULL ,
      `status` VARCHAR(45) NOT NULL ,
      PRIMARY KEY (`id`)
    ) ENGINE = InnoDB;</code>
    Copier après la connexion

Une fois ces ajustements effectués, vous devriez pouvoir créer avec succès le tableau avec la valeur par défaut spécifiée pour le champ TIMESTAMP.

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