私はいくつかのハイボリュームを扱っていますが、それほど変更可能なデータでは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 で行を挿入するクエリを探しています。tstamp
id
update_history
id
value
stamp
delete
どんな助けでも大歓迎です。