解释这个问题的最好方法是举个例子。
我有一张桌子:
CREATE TABLE `example` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data` varchar(255) DEFAULT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
结果:
编号 | 数据 | 创建 | 更新 (空)| (NULL) | (NULL) | (空值)
然后我插入一些数据:
INSERT INTO example (
`data`
) VALUES (
'abc123'
)
结果:
编号 | 数据 | 创建 | 更新 1 | abc123 | 2013-01-16 13:12:16 | (空值)
然后我更新
UPDATE example SET
`data` = 'def456',
`updated` = NOW()
WHERE id = 1
结果:
编号 | 数据 | 创建 | 更新 1 | def456 | 2013-01-16 13:16:24 | 2013-01-16 13:14:26
问题:注意created
字段如何更新,并且正确保存更新字段的时间略有不同。我已经在同一个数据库上设置了这个示例表和其他类似的表,没有这个问题,所以我完全被它弄糊涂了。