mysql 5.6 timestamp变化--explicit_default_for_timestamp

      1 在5.6.6之前,timestamp列如果没有声明null值,默认为not null。(其他数据类型,如果没有显示声明为not null,则允许null值)。设置timestamp的列值为null,会自动存储为当天timestamp。

      2  表中的第一个timestamp列,如果没有声明为null属性、default或者on update,会自动分配default current_timestamp和on update current_timestamp属性。

      3 表中第二个timestamp列,如果没有声明为null或default子句,默认自动分配‘0000-00-00 00:00:00’。插入行时没有指明改列的值,该列默认分配‘0000-00-00 00:00:00’ 且没有警告。


   5.6.6之后,这种默认设置方法被废弃。增加了explicit_default_for_timestamp参数。这是timestamp行为如下:

  a     timestamp 如果没有显示声明not nul,是运行null值的,可以直接设置该列为null,而没有默认填充行为。

  b     timestamp不会默认分配default current_timestamp和 on update current_timestamp属性。


以上适合任何引擎。


你可能感兴趣的:(MySQL5.7)