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