如果时间戳列被定义为NOT NULL
MySQL 将当前时间戳存储在列中,如果您为其分配值NULL
CREATE TABLE `t1` (
`name` varchar(100) DEFAULT NULL,
`created` timestamp NOT NULL DEFAULT 0,
`updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
INSERT INTO `t1` SET name='abc', created=null;
mysql> select * from t1;
+------+---------------------+---------------------+
| name | created | updated |
+------+---------------------+---------------------+
| abc | 2013-10-04 10:48:03 | 2013-10-04 10:48:03 |
+------+---------------------+---------------------+
UPDATE `t1` SET name='abc2' WHERE name = 'abc';
mysql> select * from t1;
+------+---------------------+---------------------+
| name | created | updated |
+------+---------------------+---------------------+
| abc2 | 2013-10-04 10:48:03 | 2013-10-04 11:42:04 |
+------+---------------------+---------------------+