私はすでにこれを読んだ:
値が変更された場合にのみデータベースに挿入するにはどうすればよいですか?
だから私の質問は非常に近いですが、まったく同じではありません。
4つの「メイン」列を持つテーブルがあります(つまり、すべてのテーブルに同じ4つの列があります):
id
- int - autoincid_origin
- int - 最初のレコードが作成されたときの IDdate_v_start
- datetime - レコードの有効期間の開始日date_v_end
- datetime - レコードの有効期限 (NULL
現在の「有効な」レコードの場合)
このテーブルに固有のその他のフィールドを次に示します。 - summary
- テキスト - detail
- テキスト
これを知っているので、そのテーブルに変更されたものがある場合は、次のようにします。
date_v_end
現在のレコードを「now()」に更新します- 新しいレコードを挿入します。
date_v_start
=date_v_end
は前のもの、id_origin
= は前のものと同じ、 -date_v_end
=NULL
および (もちろん) および の新しい値summary
ですdetail
。
summary
私の問題は、との値がdetail
変更されていない場合、その新しいレコードを挿入したくないということです。それは時間とハード ドライブのスペースの無駄です。
次のようなことを(可能であれば一発で)行う方法はありますか?
「もしsummary<>'a value' or detail<>'another value' then update this record and insert this new one
」
?
したがって、私の質問と上記のリンクの違いは次のとおりです。-比較するフィールドが複数あります-2つのリクエストがあります-可能であれば1つのリクエストで作成したいと思います。