Here's an in-place solution (but not one-liner)
Find out max id:
select max(id) as maxid
from shop;
Remember this value. Let's say it equals to 1000;
Re-insert unique values, with offset:
insert into shop (id, tax_id)
select distinct id + 1000, tax_id
from shop;
Drop old values:
delete from shop
where id <= 1000;
Restore normal ids:
update shop
set id = id - 1000;
PROFIT!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…