Cuzzle de la valeur par défaut CURRENT_DATE
Dans MySQL, tenter de définir la valeur par défaut d'une colonne DATE sur CURDATE() ou CURRENT_DATE peut sembler un choix intuitif. Cependant, en essayant de créer une telle table, cela ne fonctionne pas. Cette question explique pourquoi ce comportement se produit.
Le coupable réside dans les limitations de la clause DEFAULT de MySQL. Comme expliqué dans la documentation officielle :
"La clause DEFAULT spécifie une valeur par défaut pour une colonne. À une exception près, la valeur par défaut doit être une constante ; elle ne peut pas être une fonction ou une expression."
Par conséquent, attribuer CURRENT_DATE, qui est une fonction qui récupère la date actuelle, comme valeur par défaut pour une colonne DATE n'est pas pris en charge.
L'exception
L'exception à cette règle est le type de colonne CURRENT_TIMESTAMP. Pour une colonne TIMESTAMP, vous pouvez spécifier CURRENT_TIMESTAMP comme valeur par défaut pour remplir automatiquement la colonne avec la date et l'heure actuelles.
Solution de contournement
Si vous souhaitez conserver la date et heure actuelles dans une colonne DATE, vous pouvez utiliser un déclencheur pour mettre à jour automatiquement le champ lors des opérations d'insertion et de mise à jour.
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!