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

Pourquoi ne puis-je pas utiliser CURRENT_DATE/CURDATE() comme valeur par défaut pour les colonnes DATE dans MySQL ?

Linda Hamilton
Libérer: 2024-12-04 21:18:12
original
268 Les gens l'ont consulté

Why Can't I Use CURRENT_DATE/CURDATE() as a Default Value for DATE Columns in MySQL?

CURRENT_DATE/CURDATE() dans la valeur DEFAULT pour les colonnes DATE : fonctionnalité et limitations

Dans MySQL, vous pouvez rencontrer une situation dans laquelle vous souhaitez pour définir une valeur par défaut pour une colonne DATE à l'aide de la fonction CURRENT_DATE ou CURDATE(). Cependant, cette approche échoue souvent, ce qui soulève la question de savoir pourquoi elle n'est pas prise en charge.

La réponse réside dans la restriction de MySQL sur les valeurs par défaut. Selon la documentation MySQL :

The DEFAULT clause specifies a default value for a column. With one exception, the default value must be a constant; it cannot be a function or an expression.
Copier après la connexion

Par conséquent, MySQL n'autorise pas l'utilisation de CURRENT_DATE ou CURDATE() comme valeur par défaut pour une colonne DATE car ces fonctions renvoient dynamiquement la date actuelle. Au lieu de cela, les valeurs par défaut doivent être des constantes statiques.

Cependant, dans MySQL 8.0.13 et versions ultérieures, cette limitation a été supprimée. Vous pouvez désormais utiliser CURRENT_DATE ou CURDATE() comme valeur par défaut pour une colonne DATE.

CREATE TABLE INVOICE(
   INVOICEDATE DATE NOT NULL DEFAULT CURRENT_DATE
)
Copier après la connexion

Cette modification permet d'attribuer la date actuelle comme valeur par défaut pour les colonnes DATE, offrant ainsi plus de flexibilité dans gestion des données.

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