Oto rozwiązanie na miejscu (ale nie jednowierszowe)
Sprawdź maksymalny identyfikator:
select max(id) as maxid
from shop;
Zapamiętaj tę wartość. Powiedzmy, że równa się 1000;
Wstaw ponownie unikalne wartości, z przesunięciem:
insert into shop (id, tax_id)
select distinct id + 1000, tax_id
from shop;
Usuń stare wartości:
delete from shop
where id <= 1000;
Przywróć normalne identyfikatory:
update shop
set id = id - 1000;
ZYSK!