How to repair a corrupted MPTT tree (nested set) in the database using SQL?

I have an MPTT tree of over 100,000 records stored in MySQL using lft, rght and parent_id columns. Now the left/right values became corrupted, while the parent ids are still intact. It would require tons of queries to repair it in the application layer. Is there a good way to put the burden on the database and have it recalculate the left/right values using only SQL?


Just to clarify, I need to recalculate the numeric lft/rght values of a nested set, not the ids of neighboring records.

The Nested Set
(source: mysql.com)

19
задан Glorfindel 6 August 2019 в 19:13
поделиться