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

时间:2009-11-27 21:45:32

标签: php mysql

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

1)使用on update CURRENT_TIMESTAMP

等MySQL功能

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

如果答案是MySQL,你会怎么做?

2 个答案:

答案 0 :(得分:3)

这是一个很好的问题。我想你需要从两个方面来看这个

  • 性能
  • 实施架构

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

从实现架构的角度来看,触发器相当简单,如果你有一个很好的ORM架构(或使用像Doctrine这样的东西),你可以覆盖抽象层中的save()逻辑,以便在更新创建/修改的时间戳时你救了。

所以我个人会在PHP中实现这个,如果我几乎通过ORM访问我的所有数据库而不是通过触发器或存储过程。

答案 1 :(得分:0)

我的偏好是改变或添加一个列到MySQL表,如LastChanged,类型为TIMESTAMP,默认值为CURRENT_TIMESTAMP。因此,当向表中添加行时,会自动生成日期。

然后你可以在AFTER UPDATE中设置一个触发器,一旦记录被修改就会更新上次更改的日期

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