MySQL:添加创建和修改字段。

5

如何在MySQL中添加创建时间和修改时间字段的最佳方法是什么:

1)使用MySQL功能,例如on update CURRENT_TIMESTAMP

2)使用PHP(或其他方式)?为什么?

如果答案是MySQL,您会如何实现呢?

2个回答

3

这是一个好问题。我认为你需要从两个方面来考虑:

  • 性能
  • 实现架构

从性能的角度来看,如果您已经创建了一行或更新了一行,则更新该行上的时间戳是可以忽略不计的,因此我认为通过php或通过触发器进行更新之间没有太大区别。

从实现架构的角度来看,触发器相当容易使用,并且如果您拥有良好的ORM架构(或使用类似Doctrine的东西),则可以在抽象层中覆盖save()逻辑以始终在保存时更新创建/修改时间戳。

因此,如果我的所有数据库访问都通过ORM而不是通过触发器或存储过程进行,则我个人会在PHP中实现这一点。


0

我的偏好是更改或添加一个列到你的MySQL表中,例如LastChanged,类型为TIMESTAMP,默认值为CURRENT_TIMESTAMP。这样,当一行被添加到表中时,日期会自动生成。

然后你可以在AFTER UPDATE中添加触发器,一旦记录被修改就更新最后更改日期。

    IF NEW.LastChanged = '0000-00-00 00:00:00' THEN
        SET NEW.LastChanged = NOW();
    END IF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接