I’ve already read this:
How do I insert into a database only if a value has changed?
So my question is very close, but it’s not exaclty the same.
I have a table with 4 “main” columns (ie I have those 4 same columns on all my tables):
id– int – autoincid_origin– int – id when the first record was createddate_v_start– datetime – start date of validity of the recorddate_v_end– datetime – end of validity of the record (ifNULLit’s the current ‘valid’ record)
Here are some other fields specific to this table:
– summary – text
– detail – text
knowing this, when I have something that has been changed into that table, here’s what I do:
- I update
date_v_endof the current record to “now()” - I insert a new record, with
date_v_start=date_v_endof the previous,id_origin= the same of the previous, –date_v_end=NULLand (of course) the new values ofsummaryanddetail.
My problem is that if the values of summary and detail haven’t changed I don’t want to insert that new record, it’s a waste of time, and hard drive space.
Is there a way to do (in one shot if possible) something like:
“if summary<>'a value' or detail<>'another value' then update this record and insert this new one“
?
So, the difference between my question and the link I’ve provided above is:
– there are more than one field to compare
– there are two requests
– i’d like to make it in one request if possible.
Here’s how I did it in one “php query” = one string with commas in the middle (it’s very time consuming, but I’ll change it one day if my webserver can’t handle it anymore):