MDEV-7150 Wrong auto increment values on INSERT .. ON DUPLICATE KEY UPDATE when the inserted columns include NULL in an auto-increment column
when restoring auto-inc value in INSERT ... ON DUPLICATE KEY UPDATE, take into account that 1. it may be changed in the UPDATE clause (old code did that) 2. it may be changed in the INSERT clause and then cause a dup key (old code missed that)
This commit is contained in:
parent
a4ff2afcb4
commit
724dbaabc0
9
mysql-test/r/insert_update_autoinc-7150.result
Normal file
9
mysql-test/r/insert_update_autoinc-7150.result
Normal file
@ -0,0 +1,9 @@
|
||||
create table t1 (a int(10) auto_increment primary key, b int(11));
|
||||
insert t1 values (null,1);
|
||||
insert t1 values (null,2), (1,-1), (null,3) on duplicate key update b=values(b);
|
||||
select * from t1;
|
||||
a b
|
||||
1 -1
|
||||
2 2
|
||||
3 3
|
||||
drop table t1;
|
8
mysql-test/t/insert_update_autoinc-7150.test
Normal file
8
mysql-test/t/insert_update_autoinc-7150.test
Normal file
@ -0,0 +1,8 @@
|
||||
#
|
||||
# MDEV-7150 Wrong auto increment values on INSERT .. ON DUPLICATE KEY UPDATE when the inserted columns include NULL in an auto-increment column
|
||||
#
|
||||
create table t1 (a int(10) auto_increment primary key, b int(11));
|
||||
insert t1 values (null,1);
|
||||
insert t1 values (null,2), (1,-1), (null,3) on duplicate key update b=values(b);
|
||||
select * from t1;
|
||||
drop table t1;
|
@ -1754,7 +1754,7 @@ int write_record(THD *thd, TABLE *table,COPY_INFO *info)
|
||||
|
||||
table->file->adjust_next_insert_id_after_explicit_value(table->next_number_field->val_int());
|
||||
}
|
||||
else
|
||||
else if (prev_insert_id_for_cur_row)
|
||||
{
|
||||
table->file->restore_auto_increment(prev_insert_id_for_cur_row);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user