私はいくつかのハイボリュームを扱っていますが、それほど変更可能なデータではupdate_historyなく、現在のデータを保持するテーブル ( と呼びます) と同様に、変更のテーブル ( と呼びます) を維持したいと考えていますcurrent_data。
current_data次を含む:id(一意)、value(tstamp現在のタイムスタンプ)update_history次が含まれます:id(これも一意です),value,tstamp(すべての更新に対して),delete
= 1の特定のデータがあるとしidます。時間 0 で 10 に初期化され、時間 5 で 2 に変更され、時間 8 で削除され、時間 10 で再び 10 に設定されます。update_history含有すること:
Id Value Stamp Delete
1 10 0 0
1 2 5 0
1 2 8 1
1 10 10 0
update_historyテーブルを変更するたびに選択できますがcurrent_data、値が変更されたかどうか、または ID が削除されたかどうかを確認して行を挿入すると、やや過剰に思えます。
これを 1 つか 2 つのクエリでまとめて行う方法を探しています。id具体的には、 inupdate_historyごとidに対応する in をチェックし、最新またはincurrent_dataの値の不一致が見つからない場合、, , , =0 で行を挿入するクエリを探しています。tstampidupdate_historyidvaluestampdelete
どんな助けでも大歓迎です。