2009-12-17 57 views

回答

1

如果添加一個「timestamp」字段,它會在您更新行時自動更新它 - 儘管不完全版本化,但聽起來可能是您之後的版本。

+0

謝謝你。 '時間戳'數據類型應該有所幫助。 – alwayslearning 2009-12-22 10:21:24

1

Mysql沒有內置的rowversioning機制。儘管使用時間戳類型可能看起來不錯,但對於同時更新多行的查詢,您將遇到這種情況,並且需要更長的時間,因爲分配的值基於更改的開始而不是結束時間改變。因此,如果您的更新查詢影響100行,則所有行將具有相同的時間戳(例如,值爲2015-10-28 09:47:10.123456)。但是,行可能會在2015-10-28 09:47:10.654321之前寫完。

如果單獨根據其他時間戳(例如2015-10-28 09:47:10.500000)查找所有更改的行,則不會獲得所需的結果。取決於你的代碼,你可能會錯過100行更改。

事實上,對行的更改現在可能會有一個時間戳,您不能簡單比較兩個時間戳來獲取所有更改的行。