我有一个包含两个时间戳字段的表。它们不可空。问题是每当我在这些字段中插入null时,会自动保存当前日期,而不是抛出一个错误,说明" Column' first_data_dt'不能为null",就像当我将值插入另一个不可为空的字段时发生的那样。
此表没有关联的触发器。
有人知道为什么会这样吗?
编辑以添加表格定义:
CREATE TABLE `ui_mytable` (
`id` int(11) NOT NULL,
`first_data_dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`last_data_dt` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我现在明白为什么first_data_dt会在我插入null时随时更新到当前时间戳。但是last_data_dt呢?
答案 0 :(得分:2)
这是TIMESTAMP列的作用:
TIMESTAMP数据类型提供自动初始化和更新到当前日期和时间(即当前时间戳)。 [...]您可以通过为任何TIMESTAMP列分配一个NULL值来初始化或更新任何TIMESTAMP列,除非它已使用NULL属性定义以允许NULL值。
也许您想要使用DATETIME?