创建Mysql日期(更新记录时不更新)

ben*_*e89 4 php mysql timestamp

我正在做一个mysql表,我有一个列在更新时有当前时间戳.这很好,因为我可以确切地看到有人上传某些内容.但我不希望列在编辑上传时更改.是否最好坚持使用一个名为"创建日期"的列,并在更新时使用NO,或者使用"创建日期和修改日期"这两列,如果这样,列属性和PHP更新语句的最佳做法是什么?

Eri*_*lje 7

我通常喜欢单独的"CreateDate"和"LastModifiedDate".

至于设置它,如果您可以将CreateDate列的默认值设置为,那将是很好的NOW(),但MySQL不允许这样做.

因此,最简单的选择是使用插入触发器来执行此操作:

CREATE TRIGGER tbl_insert BEFORE INSERT ON `tbl`
    FOR EACH ROW SET NEW.CreateDate = NOW(), NEW.LastModifiedDate = NOW();
Run Code Online (Sandbox Code Playgroud)

ETA:

您也可以使用TIMESTAMP默认值为的字段CURRENT_TIMESTAMPON UPDATE CURRENT_TIMESTAMPLastModifiedDate 的约束.不幸的是,您不能TIMESTAMP在同一个表上有两个这样的列,因此触发器是处理CreateDate列所必需的.