sql >> データベース >  >> RDS >> Mysql

MySqlの行バージョン管理

    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行を見逃す可能性があります。

    行への変更には過去のタイムスタンプが含まれている可能性があるため、2つのタイムスタンプを単純に比較して、変更されたすべての行を取得することはできません。



    1. MariaDBのバグ?壊れた脱出のように

    2. MySQLは複数のテーブルから行を削除します

    3. MySQLは、最新のコメントまたは最後の投稿による投稿を注文します

    4. 管理者専用のテーブルでDrupal7を編集可能なフィールドにする方法