2014-01-29 70 views
3

如果實例的屬性分配有相同的值,commit會導致寫入數據庫嗎?我只是想知道更新屬性而不檢查現有值是否實際上與新值不同的好習慣。將相同的值分配給實例的屬性

+0

我無法確定,但如果它是這樣的話,那麼實現會非常糟糕。 – Hyperboreus

回答

3

ORM在刷新時執行值檢查並僅在更改後的值上創建更新。引述documentation

在同步的時候,每個屬性的值相比,其 先前保存的值,如果沒有淨變化,沒有SQL操作 會發生(這是比較昂貴的操作,所以它的只在 刷新時間完成)。

+0

我明白了。那麼,在不檢查淨變化的情況下分配邏輯中的值是否是一種好的做法?也就是說,把檢查工作推到sqla。 – Kar

+0

當然。該邏輯已經在SQLAlchemy中,所以爲什麼要複製它。 – tuomur

相關問題