Insérer la valeur NULL dans le timestamp MySQL

Je suis en observant un comportement inattendu avec insertion/mise à jour de la valeur NULL dans une colonne timestamp MySQL.

Considérons les énoncés suivants.

create table temp(id int, hireDate timestamp default 0);
insert into temp (id) values(1);
insert into temp (id, hireDate) values(2, null);
select * from temp;
id  hireDate
-----------------------------
1   
2   2012-09-19 10:54:10.0

Le premier insert (quand hiredate n'est pas spécifié dans le SQL, date d'embauche est null(0) qui est attendu.

Toutefois, lorsqu'une valeur null explicite passé dans le langage SQL, la date actuelle heure est inséré qui est inattendu. Pourquoi est-ce arrivé?

Remarque: Hibernate utilise le deuxième type d'insertion et d'où il ne devienne un problème. Comment puis-je insérer la valeur null dans une colonne timestamp?

  • Qu'est-ce que Hibernate? C'est le comportement par défaut de MySQL. Chaque fois que Vous mettez à jour la ligne aussi des champs d'horodatage mise à jour automatiquement
  • et la valeur NULL est différent de 0
  • par défaut 0 est la clé. sans cela, il sera toujours NULL, au lieu de CURRENT_TIMESTAMP