All pastes #595359 Raw Edit

last_indert_id bug?

public sql v1 · immutable
#595359 ·published 2007-06-29 14:02 UTC
rendered paste body
create table dummy (   id int auto_increment,   name varchar(255) not null,  bla varchar(255) not null,  primary key (id),  unique key(name)) ENGINE=InnoDB;insert into dummy ( name, bla ) values ( "foo", "--" ) on duplicate key update bla = if (VALUES(bla) = "--", bla, VALUES(bla));-- new row. correctly returns the new id (1)select last_insert_id();insert into dummy ( name, bla ) values ( "foo", "--" ) on duplicate key update bla = if (VALUES(bla) = "--", bla, VALUES(bla));-- no update. correctly returns 0select last_insert_id();insert into dummy ( name, bla ) values ( "foo", "XX" ) on duplicate key update bla = if (VALUES(bla) = "--", bla, VALUES(bla));-- row updated. THIS RETURNS 2! WTF??select last_insert_id();insert into dummy ( name, bla ) values ( "foo", "XX" ) on duplicate key update bla = if (values(bla) = "--", bla, VALUES(bla));-- no update. correctly returns 0select last_insert_id();