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>
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>
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!