Inilah solusi di tempat (tetapi bukan satu baris)
Cari tahu id maks:
select max(id) as maxid
from shop;
Ingat nilai ini. Katakanlah itu sama dengan 1000;
Masukkan kembali nilai unik, dengan offset:
insert into shop (id, tax_id)
select distinct id + 1000, tax_id
from shop;
Lepaskan nilai lama:
delete from shop
where id <= 1000;
Pulihkan id normal:
update shop
set id = id - 1000;
KEUNTUNGAN!