Maison > base de données > tutoriel mysql > Pourquoi l'ajout d'une colonne entraîne-t-il une erreur « Valeur par défaut non valide pour « created_at » » dans MySQL ?

Pourquoi l'ajout d'une colonne entraîne-t-il une erreur « Valeur par défaut non valide pour « created_at » » dans MySQL ?

DDD
Libérer: 2024-12-02 11:48:10
original
1026 Les gens l'ont consulté

Why Does Adding a Column Result in an

Valeur par défaut non valide pour Created_At

Problème :

Lors de la tentative de modification d'une table en en ajoutant une nouvelle colonne, vous rencontrez une erreur :

ERROR 1067 (42000): Invalid default value for 'created_at'
Copier après la connexion

bien que vous n'en ayez modifié aucune colonnes d'horodatage.

Solution :

L'erreur provient de sql_modes. Pour le résoudre :

  1. Vérifiez les modes SQL :
show variables like 'sql_mode' ;
Copier après la connexion
  1. Désactivez les modes problématiques :

Supprimez les modes suivants de sql_mode :

NO_ZERO_IN_DATE
NO_ZERO_DATE
Copier après la connexion

Ces modes sont présents par défaut dans les versions plus récentes de MySQL.

Paramètre global :

Pour un changement à l'échelle du système, exécutez ce qui suit en tant que root :

set global sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
Copier après la connexion

Supplémentaire Notes :

  • La nouvelle colonne peut maintenant être ajoutée sans déclencher l'erreur.
  • Si vous souhaitez utiliser la valeur par défaut NOT NULL pour Create_at, vous pouvez la spécifier explicitement :
ALTER TABLE investments ADD bank TEXT DEFAULT NOT NULL;
Copier après la connexion

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!

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