MySQL の組み込みの行バージョン管理メカニズムはありますか? MS SqlServer の「タイムスタンプ」列に似たもの。
2 に答える
Mysql には行バージョン管理メカニズムが組み込まれていません。タイムスタンプ型の使用は問題ないように思えるかもしれませんが、複数の行を同時に更新し、割り当てられた値が変更の終わりではなく変更の開始に基づいているため、タイムスタンプの解決よりも時間がかかるクエリの場合、これに違反することになります。変化。
したがって、更新クエリが 100 行に影響する場合、すべての行のタイムスタンプは同じになります (2015-10-28 09:47:10.123456 の値など)。ただし、2015-10-28 09:47:10.654321 まで行の書き込みが終了しない可能性があります。
個別に、他のタイムスタンプ (2015-10-28 09:47:10.500000 など) に基づいて変更されたすべての行を探している場合、必要な結果は得られません。また、コードによっては、変更された 100 行を見逃す可能性があります。
現在の行への変更には過去のタイムスタンプが含まれている可能性があるため、単純に 2 つのタイムスタンプを比較してすべての変更された行を取得することはできません。
「タイムスタンプ」フィールドを追加すると、行を更新するたびに自動的に更新されます。ただし、正確にはバージョン管理されていませんが、目的のように聞こえます。