私はすでにこれを読んだ:
値が変更された場合にのみデータベースに挿入するにはどうすればよいですか?
だから私の質問は非常に近いですが、まったく同じではありません。
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つのリクエストで作成したいと思います。