Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL:riutilizza l'incremento automatico durante l'inserimento

Sì. Come hai scoperto, il valore id non è stato ancora generato in un trigger BEFORE INSERT. Ma non puoi modificare il tuo valore NEW.thread in un trigger AFTER INSERT.

Non puoi fare affidamento sulla lettura di INFORMATION_SCHEMA, perché puoi causare una condizione di gara.

Dovrai solo fare INSERT, quindi eseguire immediatamente:

UPDATE comments SET thread=id WHERE id=LAST_INSERT_ID() AND thread IS NULL;

Se è un commento radice.

Vedi anche le mie risposte passate sull'argomento simile: