MYSQL-TIMESTAMP数据类型的默认值与自动更新问题

来源:互联网 发布:暖气管道改造 知乎 编辑:程序博客网 时间:2024/05/16 06:39

今天早上写MYSQL代码时发现,被更新的行里的那些被定义为timestamp类型的字段在没有显式更新的时候也自动更新了。于是我心里就有个疑问,这种timestamp类型的数据是否会真的自动更新?虽然我之前看到一些资料上说timestamp会有默认值。好奇心驱使下决定查下文档:

http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html

先创建一张测试表

select version() ;5.6.26drop table if exists tst1 ;create table tst1 (   a    tinyint  ,b    datetime  ,c    timestamp) ;show create table tst1 ;CREATE TABLE `tst1` (  `a` tinyint(4) DEFAULT NULL,  `b` datetime DEFAULT NULL,  `c` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT CHARSET=utf8


可以看到,timestamp是带有默认值CURRENT_TIMESTAMP并且在更新时如果没有显示指定值会隐式的更新为CURRENT_TIMESTAMP。



先占个坑,有空再写写


0 0