Ecco una soluzione sul posto (ma non one-liner)
Scopri l'ID massimo:
select max(id) as maxid
from shop;
Ricorda questo valore. Diciamo che è uguale a 1000;
Reinserire i valori univoci, con offset:
insert into shop (id, tax_id)
select distinct id + 1000, tax_id
from shop;
Elimina i vecchi valori:
delete from shop
where id <= 1000;
Ripristina ID normali:
update shop
set id = id - 1000;
GUADAGNO!