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

MySQL - Trigger per l'aggiornamento della stessa tabella dopo l'inserimento

Sembra che non puoi fare tutto questo in un trigger. Secondo la documentazione :

All'interno di una funzione o di un trigger memorizzati, non è consentito modificare una tabella che è già utilizzata (per la lettura o la scrittura) dall'istruzione che ha richiamato la funzione o il trigger.

Secondo questa risposta , sembra che dovresti:

crea una procedura memorizzata, che inserisce/aggiorna la tabella di destinazione, quindi aggiorna le altre righe, il tutto in una transazione.

Con un processo memorizzato eseguirai manualmente il commit delle modifiche (inserimento e aggiornamento). Non l'ho fatto in MySQL, ma questo post sembra un buon esempio.