MySQL:有没有办法自动设置datetime字段来记录创建时间戳?

时间:2010-12-11 16:18:33

标签: mysql timestamp

我知道TIMESTAMP数据类型会在更新记录时自动更新时间戳值,而且我已经有了这样的列。

除此之外,我希望有一个列自动填充到NOW()(或CURRENT_TIMESTAMP)并且永远不会更改,但MySQL DEFAULT似乎不支持函数调用。

请仅发布纯MySQL答案。我知道如何在应用程序级别执行此操作。

编辑:如果没有这样的功能 - 我很高兴听到这个。

EDIT2:MySQL版本为5.0.32

2 个答案:

答案 0 :(得分:9)

使用触发器设置默认值。

DELIMITER |

CREATE
    TRIGGER trigger_name BEFORE INSERT ON tbl_name FOR EACH ROW 
BEGIN
    SET NEW.colname = NOW();
END; 
     

|

试试这个,包括分隔符。

答案 1 :(得分:3)

  

我想要一个自动填充到NOW()(或CURRENT_TIMESTAMP)并永不改变的列

通过说你希望填充到NOW(),听起来你指的是最初的INSERT。如果是这样的话,你能用它吗?像

这样的东西
INSERT INTO table (field1,field2,my_datetime) VALUES (1,'a',NOW())