Converting INSERT commands to UPDATE
MySQL's REPLACE
keyword does this. Simply replace the INSERT
keyword in your queries with the word REPLACE
and it should update the rows instead of inserting new ones. Please note that it will only work if you're inserting a primary key or unique key column.
You would have to rewrite them to updates by hand. If I encouter such a problem, I query for the count of certain primary key first, if none is found I insert a generic dataset and update it afterwards. By this, new data can be added and already existing data will be updated, and you don't have to differentiate between inserting new data and updating data.
For MySQL, you can use either the INSERT IGNORE
or the INSERT ... ON DUPLICATE UPDATE
syntaxes. See the MySQL reference manual