Hai scritto una query buona e intelligente per generare quei numeri di riga, uno che evita una soluzione disordinata usando le variabili di sessione. Per eseguire l'aggiornamento, unisciti al tuo tavolo bomitems
a questa domanda:
UPDATE bomitems t1
INNER JOIN
(
SELECT
t.ID,
t.Parent,
(SELECT COUNT(*) FROM bomitems AS x WHERE x.id <= t.id AND x.Parent = t.Parent) AS Counter
FROM bomitems t
) t2
ON t1.ID = t2.ID
SET t1.Counter = t2.Counter;
Ho testato questa query sul mio MySQL Workbench locale e sembra funzionare.