modifytime是一个神奇的column name----这边文章是错的totally,因为我的实验不彻底。timestamp属性很神奇,头一个timestamp,会自动的成DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

时间:2023-03-08 20:40:26

在mysql里边modifytime是一个神奇的column name,试一下。

请执行sql语句

CREATE TABLE `test_time` (
`modifytime` timestamp NOT NULL ,
`lastlivetime` timestamp NOT NULL
)

然后查看你刚才创建的表test_time的数据库执行语句。

show create table test_time;

在查询出来的Create Table列里边你会看到mysql是如何创建表test_time的。

CREATE TABLE `test_time` (
`modifytime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`lastlivetime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=latin1

在我自己的sql语句里边modifytime和lastlivetime类型是行为完全一致的。mysql自己对modifytime进行了一些规范,将记录任何改动都提现在了当前记录的modifytime上了。。

请注意:如果对modifytime的时间戳,你想自己去控制的话,就需要改变mysql自己创建modifytime的语句了。使用`modifytime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' 这样的创建语句。使modifytime和lastlivetime的行为相同,你可以自己控制modifytime了。

modifytime作为列名,的确需要注意。