Aquí hay una solución en el lugar (pero no de una sola línea)
Descubra la identificación máxima:
select max(id) as maxid
from shop;
Recuerda este valor. Digamos que es igual a 1000;
Vuelva a insertar valores únicos, con compensación:
insert into shop (id, tax_id)
select distinct id + 1000, tax_id
from shop;
Eliminar valores antiguos:
delete from shop
where id <= 1000;
Restaurar identificaciones normales:
update shop
set id = id - 1000;
¡BENEFICIO!