Définir NOW() comme valeur par défaut pour le type de données Datetime
Lors de la création de tables de base de données, il peut être avantageux de définir des valeurs par défaut pour les colonnes assurer une saisie cohérente des données. Pour les types de données datetime, il est souvent souhaitable d'utiliser l'heure actuelle comme valeur par défaut.
Défi de modification de table existante
Dans MySQL, définir une valeur par défaut de MAINTENANT () pour une colonne datetime existante peut être difficile. Le message d'erreur rencontré lors de la tentative de définition de la valeur par défaut sur NOW() indique qu'il s'agit d'une valeur par défaut non valide.
Solution pour MySQL 5.6.5 et supérieur
Heureusement, MySQL 5.6.5 introduit le type de données DATETIME, qui permet des valeurs dynamiques par défaut. Pour définir la valeur par défaut sur NOW() lors de la création de la table, utilisez la syntaxe suivante :
CREATE TABLE users ( registerDate DATETIME DEFAULT CURRENT_TIMESTAMP )
Solution antérieure à MySQL 5.6.5
Pour les versions MySQL avant 5.6.5, le type de données TIMESTAMP doit être utilisé pour mettre à jour automatiquement la valeur datetime lors de la modification de l'enregistrement. Cependant, il convient de noter qu'un seul champ TIMESTAMP mis à jour automatiquement peut exister par table.
CREATE TABLE users ( registerDate TIMESTAMP )
Pour éviter que la valeur de l'horodatage ne soit mise à jour lors de UPDATE, ajoutez DEFAULT CURRENT_TIMESTAMP à la définition du champ TIMESTAMP :
CREATE TABLE users ( registerDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP )
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!