2011-08-11 27 views
1

私は数分おきに別のデータソースからデータベースを更新していますが、いくつかの更新/保存は実際にはまったく変更されていません...同じことが何度も書き戻されています。からの引っ張りは、オブジェクトが変更されたと言いますが、実際に変更されたフィールドは、私が使用しているものではありません。updated_atタイムスタンプ何も変更されていない場合でも保存時に更新できますか?

私はオブジェクトが変更されて以来それを望んでいたのですか? updated_atタイムスタンプが更新されないが、そうでない場合は、更新/保存コールごとに変更されるということは偽である。

この動作を変更したいのですが(実際にフィールドが変更された場合のみupdated_atが変更されます)

+0

これらのレコードを書き換えないほうがいいですか? – Bohdan

+0

私は従いません...どういう意味ですか? – concept47

答えて

-2

の機能を変更した場合にのみ書き込みフィールドを実装すると、データベースがデフォルトでこれを実行しない理由がわかります。これは、ロック、並行性、競合条件と関係しています。

フィールドが更新されている場合は、文字列や数字のように単純ですが、比較は簡単です。アプリケーションが唯一のアクセサである場合は、データベース操作を共通のロック/ロック解除でラップするか、データベーストランザクションにします。

調査する可能性のあるもう1つのアプローチは、アップストリームデータの更新をスマートにして、アプリケーションがそうである必要がないようにすることです。

関連する問題