Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Automatisches Inkrement während des Einfügens wiederverwenden

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: