在mysql中:
- timestamp列如果没有显式定义为null,默认会被设置为not null属性。(其它的数据类型如果没有显式定义为not null,默认是可以为null的)。设置timestamp的列值为null,会自动存储为当前timestamp
- 表中的第一个timestamp列,如果没有定义为null、定义default值或者on update,会自动分配default current_timestamp和on update current_timestamp属性
- 表中第一个timestamp列之后的所有timestamp列,如果没有被定义为null、定义default值,会自动被指定默认值'0000-00-00 00:00:00'。在插入时,如果没有指定这些列的值,会自动指定为'0000-00-00 00:00:00',且不会产生警告
1 mysql> create table timestamp_eg( 2 -> id int not null auto_increment, 3 -> time1 timestamp, 4 -> time2 timestamp, 5 -> time3 timestamp NOT NULL DEFAULT '2010-01-01 00:00:00', 6 -> time4 timestamp, 7 -> primary key(id)); 8 Query OK, 0 rows affected (0.01 sec) 9 10 mysql> insert into timestamp_eg(id) values(1); 11 Query OK, 1 row affected (0.00 sec) 12 13 mysql> select * from timestamp_eg; 14 +----+---------------------+---------------------+---------------------+---------------------+ 15 | id | time1 | time2 | time3 | time4 | 16 +----+---------------------+---------------------+---------------------+---------------------+ 17 | 1 | 2015-12-16 09:23:33 | 0000
MySQL TIMESTAMP 默认值详解

本文详细解析了MySQL中TIMESTAMP类型的默认值行为变化,包括在不同版本和配置下,TIMESTAMP列如何处理NULL值及默认值。特别是针对MySQL 5.6.6版本及其之后的变化进行了说明。
最低0.47元/天 解锁文章
365

被折叠的 条评论
为什么被折叠?



