2011-08-11 36 views
1

我無意識地每隔幾分鐘從另一個數據源更新一個數據庫,並且一些更新/保存根本沒有真正的變化......同樣的事情只是被反覆寫回,因爲我的數據源拉從說對象已經改變,但改變的實際領域不是我正在使用的。updated_at時間戳即使在沒有任何變化時也可以保存更新,我可以更改嗎?

我希望自從object.changed?將不會更新updated_at時間戳,但事實並非如此,它會在每次更新/保存調用時更改。

有沒有辦法將此行爲更改爲我想要的內容(updated_at僅在字段實際更改時才更改)?

+0

難道不要重寫這些記錄嗎? – Bohdan

+0

我不遵循...你是什麼意思? – concept47

回答

-2

只要您成功實施寫字段,只有在更改了功能後,纔會明白爲什麼數據庫默認不會這樣做。它與鎖定,併發和競爭條件有關。

如果正在更新的字段很簡單,比如字符串或數字,則比較非常簡單。如果應用程序是唯一的訪問者,或者使其成爲數據庫事務,則將數據庫操作包裝在通用鎖定/解鎖中。

您可能會研究的另一種方法是使上游數據更新變得更加智能,因此您的應用程序不一定非要。

相關問題