J'ai une table avec une colonne de type timestamp
qui est par défaut current_timestamp
et mises à jour de current_timestamp
à chaque mise à jour.
Je souhaite supprimer la fonctionnalité "on update" de cette colonne. Comment écrire l'instruction alter?
J'ai essayé ce qui suit:
ALTER TABLE mytable alter column time set DEFAULT now();
mais cela n'a pas fonctionné.
Pete était presque correct mais a utilisé la mauvaise syntaxe pour "changer":
ALTER TABLE mytable CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Notez que vous devez répéter le nom de la colonne. Assurez-vous également que vous utilisez des guillemets au lieu de guillemets simples pour échapper à l'heure du nom de la colonne, ce qui l'empêche d'être interprété comme le type de temps de la colonne mysql.
En spécifiant le DEFAULT de CURRENT_TIMESTAMP, MySQL ne mettra plus automatiquement à jour la colonne. Depuis le Manuel MySQL :
Avec une clause DEFAULT CURRENT_TIMESTAMP et aucune clause ON UPDATE, la colonne a l'horodatage actuel pour sa valeur par défaut mais n'est pas automatiquement mise à jour.
AFAIK ne peut pas utiliser par défaut des fonctions telles que NOW ().
Essayer
ALTER TABLE `mytable` CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
(Modifié pour ajouter l'échappement et la deuxième utilisation du nom de champ)