Maison > base de données > tutoriel mysql > Pourquoi CURRENT_DATE/CURDATE() ne fonctionne-t-il pas comme valeur par défaut pour les colonnes MySQL DATE ?

Pourquoi CURRENT_DATE/CURDATE() ne fonctionne-t-il pas comme valeur par défaut pour les colonnes MySQL DATE ?

Mary-Kate Olsen
Libérer: 2024-12-20 02:53:09
original
428 Les gens l'ont consulté

Why Doesn't CURRENT_DATE/CURDATE() Work as a Default Value for MySQL DATE Columns?

Problèmes de valeur de date par défaut avec CURRENT_DATE/CURDATE()

Dans le monde MySQL, vous pouvez rencontrer une question apparemment simple : pourquoi t CURRENT_DATE ou CURDATE() fonctionne comme valeur par défaut pour un DATE

L'énigme : pourquoi ça ne marche pas ?

Comme on peut s'y attendre, ce code devrait fonctionner sans problème :

Cependant, à notre grande surprise, ce n'est pas le cas. Quelle est la raison de cette énigme ?

La réponse : une limitation de MySQL

La réponse réside dans une limitation de MySQL. Bien que cela soit intuitif, définir la valeur par défaut d'une colonne DATE sur CURRENT_DATE ou CURDATE() n'est pas pris en charge.

Selon la documentation MySQL, les valeurs par défaut doivent être des constantes plutôt que des fonctions ou des expressions. Cela élimine la possibilité d'utiliser ces fonctions pour définir dynamiquement des dates par défaut.

L'exception : CURRENT_TIMESTAMP

L'exception à cette règle est CURRENT_TIMESTAMP. Cette fonction peut être définie comme valeur par défaut pour une colonne TIMESTAMP. Cependant, il est important de noter qu'il représente le moment actuel, et non une date spécifique.

MISE À JOUR : Dans MySQL 8.0.13, il y a eu un changement important. CURRENT_DATE et CURDATE() sont désormais pris en charge comme valeurs par défaut pour les colonnes DATE. Cette mise à jour corrige la limitation évoquée dans cet article.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal