Ja. Wie Sie festgestellt haben, wurde der ID-Wert noch nicht in einem BEFORE INSERT-Trigger generiert. Aber Sie können Ihren NEW.thread-Wert nicht in einem AFTER INSERT-Trigger ändern.
Sie können sich nicht darauf verlassen, das INFORMATION_SCHEMA zu lesen, da Sie eine Race-Condition verursachen können.
Sie müssen nur INSERT ausführen und dann sofort ausführen:
UPDATE comments SET thread=id WHERE id=LAST_INSERT_ID() AND thread IS NULL;
Wenn es sich um einen Root-Kommentar handelt.
Siehe auch meine früheren Antworten zum ähnlichen Thema:
- Verketten einer Zeichenfolge und einer Primärschlüssel-ID beim Einfügen
- Zwei Autoinkrement-Spalten oder Autoinkrement und derselbe Wert in einer anderen Spalte