Ano. Jak jste zjistili, hodnota id ještě nebyla vygenerována ve spouštěči BEFORE INSERT. Hodnotu NEW.thread však nemůžete změnit ve spouštěči AFTER INSERT.
Nemůžete se spolehnout na to, že si přečtete INFORMAČNÍ SCHÉMA, protože můžete způsobit spor.
Stačí provést INSERT a poté okamžitě provést:
UPDATE comments SET thread=id WHERE id=LAST_INSERT_ID() AND thread IS NULL;
Pokud se jedná o kořenový komentář.
Viz také mé minulé odpovědi na podobné téma:
- Zřetězení řetězce a ID primárního klíče při vkládání
- Dva sloupce automatického zvýšení nebo automatické zvýšení a stejná hodnota v druhém sloupci