我知道TIMESTAMP数据类型会在更新记录时自动更新时间戳值,而且我已经有了这样的列。
除此之外,我希望有一个列自动填充到NOW()(或CURRENT_TIMESTAMP)并且永远不会更改,但MySQL DEFAULT似乎不支持函数调用。
请仅发布纯MySQL答案。我知道如何在应用程序级别执行此操作。
编辑:如果没有这样的功能 - 我很高兴听到这个。
EDIT2:MySQL版本为5.0.32
答案 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())