web-dev-qa-db-fra.com

MySQL TIMESTAMP à NULL par défaut, pas CURRENT_TIMESTAMP

En utilisant MySQL, j'essaie de créer une colonne d'horodatage à partir d'une colonne de date et d'une colonne d'heure. Si la colonne de date ou d'heure contient une valeur NULL, MySQL définit automatiquement la valeur correspondante dans la colonne TIMESTAMP sur CURRENT_TIMESTAMP .

Existe-t-il un moyen de le définir par défaut sur un NULL, au lieu du CURRENT_TIMESTAMP?

Quelque chose comme:

ALTER TABLE customers ADD s_timestamp TIMESTAMP;
UPDATE customers
    SET s_timestamp = timestamp(s_date,s_time) DEFAULT NULL;
24
natsuki_2002

Utilisez cette requête pour ajouter votre colonne

ALTER TABLE `customers` 
ADD COLUMN `s_timestamp` TIMESTAMP NULL DEFAULT NULL;

Et, si vous souhaitez obtenir l'horodatage actuel sur la mise à jour uniquement:

ALTER TABLE `customers` 
ADD COLUMN `s_timestamp` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP;
55
zessx