TimeStamp列始终为零值

时间:2015-11-20 00:53:54

标签: mysql

我有以下查询来设置列的默认值:

ALTER TABLE tableName ADD COLUMN testDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

但是我在新插入的行中看到了0000-00-00 00:00:00的testDate列。

我希望看到当前的日期和时间。

有人可以解释为什么会这样吗?

2 个答案:

答案 0 :(得分:2)

您在INSERT查询中指定的数据会覆盖列的默认值,即如果没有为列设置数据,则默认值有效。

查看我的fiddle

答案 1 :(得分:0)

默认值仅在查询中未定义值时才有效。

这将使用test的默认值:

INSERT INTO mytable(userid, email) VALUES(42, 'info@example.org');

虽然这会覆盖test的默认值:

INSERT INTO mytable(userid,email,test/*here is when it goes wrong, you shouldn't mention the column in your insert statement at all*/) VALUES(42,'bush@example.did','2001-09-11 00:00:00');