да. Както открихте, стойността на идентификатора все още не е генерирана в тригер BEFORE INSERT. Но не можете да промените стойността си NEW.thread в тригер AFTER INSERT.
Не можете да разчитате на четене на INFORMATION_SCHEMA, защото можете да предизвикате състояние на състезание.
Просто ще трябва да направите INSERT и след това незабавно да изпълните:
UPDATE comments SET thread=id WHERE id=LAST_INSERT_ID() AND thread IS NULL;
Ако е главен коментар.
Вижте и предишните ми отговори на подобна тема:
- Свързване на низ и идентификатор на първичен ключ при вмъкване
- Две колони с автоматично нарастване или автоматично увеличение и същата стойност в друга колона