2009-11-27 23 views
5

什麼是最好的辦法,以增加在MySQL中創建和修改字段:使用MySQLMySQL的:加入創建和修改的字段

1)功能,如使用PHP(或別的東西)on update CURRENT_TIMESTAMP

2)?爲什麼?

如果答案是MySQL,你會怎麼做?

回答

3

這是一個很好的問題。我想你需要看看這個從兩個方面

  • 性能
  • 實現架構

從性能的角度來看,如果您已經創建了一個行或更新行時然後更新時間戳該行是微不足道的,因此我不認爲從PHP更新或通過觸發器有很大的區別。

從實現架構的角度來看,觸發器相當容易,如果你有一個很好的ORM體系結構(或者使用像Doctrine這樣的東西),你可以在抽象層覆蓋save()邏輯以始終更新創建/修改的時間戳當你保存。

因此,我個人會在PHP中實現這一點,如果我幾乎所有的數據庫都通過ORM訪問,而不是通過觸發器或存儲過程。

0

我的首選是改變或添加一個列到MySQL表中,像LastChanged類型爲TIMESTAMP,默認值爲CURRENT_TIMESTAMP。所以當一行被添加到表中時,日期會自動生成。

然後,你可以擁有在AFTER UPDATE等的觸發,一旦記錄已修改

IF NEW.LastChanged = '0000-00-00 00:00:00' THEN 
     SET NEW.LastChanged = NOW(); 
    END IF 
,將更新上次更改日期