• guilhem@gbichot3.local's avatar
    New way to fix BUG#19243 "wrong LAST_INSERT_ID() after ON DUPLICATE KEY UPDATE". · 04284f8c
    guilhem@gbichot3.local authored
    This bug report was two problems:
    1) LAST_INSERT_ID() returns a value which does not exist in the table
    2) the reporter would want it to return the autoinc id of the updated
    row.
    1) is a real bug, 2) is a feature request.
    In July I implemented 2) in 5.1 (which automatically fixes 1).
    This has not yet been documented or released, so is changeable.
    Precisely, recently Paul and a user found an easy workaround to give
    2), which works in 4.1-5.0-5.1. So I can revert my code for 2),
    because it's not needed, that's what I do here;
    we forget about 2) (we will document the workaround).
    But when I revert my code for 2), 1) comes back. We solve 1) by saying
    that if INSERT ON DUPLICATE KEY UPDATE updates a row, it's like a
    regular UPDATE: LAST_INSERT_ID() should not be affected (instead of
    returning a non-existent value).
    So note: no behaviour change compared to the last released 5.1; just
    a bugfix for 1).
    04284f8c
innodb_mysql.test 14.4 KB