How to know if when using “on duplicate key update” a row was inserted or updated?

后端 未结 3 1296
-上瘾入骨i
-上瘾入骨i 2020-12-09 15:09

We have a database that gets updated everyday at midnight with a cronjob, we get new data from an external XML.

What we do is that we insert all the new content and

3条回答
  •  一整个雨季
    2020-12-09 16:01

    Add an update_count INT NOT NULL DEFAULT 1 column and change your query:

    INSERT
    INTO    table (id, col1, col2, col3)
    VALUES
    (id_value, val1, val2, val3),
    (id_value, val1, val2, val3,),
    (id_value, val1, val2, val3),
    (id_value, val1, val2, val3),
    ON DUPLICATE KEY
    UPDATE 
            col1 = VALUES (col1), 
            col2 = VALUES (col2), 
            col3 = VALUES (col3),
            update_count = update_count + 1;
    

    You can also increment it in a BEFORE UPDATE trigger which will allow you to keep the query as is.

提交回复
热议问题