Vous avez écrit une bonne et intelligente requête pour générer ces numéros de ligne, qui évite une solution compliquée utilisant des variables de session. Pour faire la mise à jour, rejoignez simplement votre table bomitems
à cette requête :
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;
J'ai testé cette requête sur mon MySQL Workbench local et cela semble fonctionner.