2011-07-27 3 views
0

J'ai une table qui contient des champs d'horodatage en couple et j'ai quelques problèmes avec certains champs par défaut à NULL.Mise à jour automatique de l'horodatage de MySQL

Dans mes utilisateurs table, j'ai ces tables d'horodatage:

(field),(NULL),(default val) 

deleted_on YES NULL 
last_change_attemp YES NULL 
newpass_time YES NULL 
last_login YES NULL 
created NO 0000-00-00 00:00:00 
updates YES NULL 

Quand je vais modifier une ligne dans phpMyAdmin, la ligne que je suis édition a déjà la case à cocher NULL cochée pour tous les champs NULL, sauf le premier champ: * deleted_on *. Si je coche manuellement la case à cocher, cela me permet de maintenir ce champ comme NULL.

Lorsque je mets à jour un autre champ via une requête, il fait automatiquement un current_timestamp sur ce premier champ. Est-ce prévu?

Répondre

3

J'ai lu les documents encore et remarqué ce morceau de texte

Pour spécifier par défaut automatique ou la mise à jour d'une colonne TIMESTAMP autre que le premier, vous devez supprimer l'initialisation automatique et mise à jour les comportements de la première colonne TIMESTAMP en explicitement en lui affectant une valeur DEFAULT constante (par exemple, DEFAULT 0 ou DEFAULT '2003-01-01 00:00:00'). Ensuite, pour l'autre colonne TIMESTAMP, les règles sont les mêmes que pour la première colonne TIMESTAMP, sauf que si vous omettez à la fois les clauses DEFAULT et ON UPDATE, aucune initialisation ou mise à jour automatique ne se produit.

http://dev.mysql.com/doc/refman/5.0/en/timestamp.html

Donc, pour le moment j'ai les champs par défaut à 00:00:00 Pour commencer éviter 0000-00-00 mises à jour automatiques.

0

phpMyAdmin fait des choses étranges avec horodatages et nul, surtout si la colonne est marquée comme CURRENT_TIMESTAMP

Je ne sais pas pourquoi.

Questions connexes