Ja. Som du upptäckte har id-värdet inte genererats ännu i en BEFORE INSERT-utlösare. Men du kan inte ändra ditt NEW.thread-värde i en AFTER INSERT-utlösare.
Du kan inte lita på att läsa INFORMATION_SCHEMA, eftersom du kan orsaka ett tävlingstillstånd.
Du behöver bara göra INSERT och sedan omedelbart köra:
UPDATE comments SET thread=id WHERE id=LAST_INSERT_ID() AND thread IS NULL;
Om det är en rotkommentar.
Se även mina tidigare svar om liknande ämne:
- Sammanfoga en sträng och primärnyckel-ID vid infogning
- Två autoinkrementkolumner eller autoinkrement och samma värde i annan kolumn