J'ai une table où j'ai une colonne date
. MySQL peut-il renseigner automatiquement ce champ chaque fois que j'insère un nouveau registre avec la date du jour? Ou est-ce fait automatiquement par défaut?
P.S .: J'utilise PHPMyAdmin
Vous pouvez spécifier des valeurs par défaut pour les dates de la même manière que toute autre colonne. La syntaxe ressemble à ceci:
mon_date DATE DEFAULT '2014-01-19'
Définissez Default sur dans votre requête mySql
CURRENT_TIMESTAMP
vous devez utiliser
à présent()
fonction où vous voulez remplir l'heure actuelle.
c'est à dire.:
INSERT INTO user_rights (`user_id`,`right`,`group_id`,`created_date`) VALUES ( '42', '160', '1', now());
Je sais que ce n’est peut-être pas une réponse directe à la question, mais j’estime qu’il s’agit de la solution la plus utilisable.
Je recommande fortement d'utiliser un type de données DATETIME ou TIMESTAMP pour la colonne en question.
Si vous utilisez une version assez récente de MySQL, MySQL fera le travail pour vous .
Détails:
Pour être très clair, à partir de la version 5.6.5, vous pouvez effectuer les opérations suivantes pour les types de données TIMESTAMP & DATETIME:
Voici comment:
Un exemple dans une instruction CREATE TABLE:
CREATE TABLE t1 (
ts1 DATETIME ON UPDATE CURRENT_TIMESTAMP
,ts2 DATETIME DEFAULT NOW()
);
Veuillez noter que DATETIME peut être remplacé par TIMESTAMP pour une fonctionnalité identique.
De plus, je suggère d'utiliser le type de données DATETIME sur TIMESTAMP, car DATETIME a une plage de dates beaucoup plus large qu'il peut prendre en charge. Il est à noter que TIMESTAMP est plus petit pour les quelques cas importants.
Pour plus de détails, veuillez lire ma réponse ici: https://stackoverflow.com/a/26117532/1748266
Vous pouvez faire quelque chose comme ça depuis l'écran SQL
ALTER TABLE `table_name` CHANGE `created_at` `created_at` TIMESTAMP NOT NULL