Tak. Jak odkryłeś, wartość identyfikatora nie została jeszcze wygenerowana w wyzwalaczu PRZED WSTAWIENIEM. Ale nie możesz zmienić wartości NEW.thread w wyzwalaczu PO INSERT.
Nie możesz polegać na przeczytaniu INFORMATION_SCHEMA, ponieważ możesz spowodować wyścig.
Wystarczy wykonać WSTAWIENIE, a następnie natychmiast wykonać:
UPDATE comments SET thread=id WHERE id=LAST_INSERT_ID() AND thread IS NULL;
Jeśli jest to komentarz główny.
Zobacz także moje wcześniejsze odpowiedzi na podobny temat:
- Łączenie ciągu i identyfikatora klucza podstawowego podczas wstawiania
- Dwie kolumny autoinkrementacji lub autoinkrementacja i ta sama wartość w innej kolumnie