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

Il mio trigger MySQL non funziona, sintassi semplice, non complicata

Una funzione o un trigger memorizzati non possono modificare una tabella che è già utilizzata (per la lettura o la scrittura) dall'istruzione che ha richiamato la funzione o il trigger.

da:Restrizioni del programma memorizzato .

Generalmente con un trigger che si attiva all'inserimento, se si vuole modificare il valore che si sta inserendo si effettua il trigger del tipo BEFORE INSERT e cambia i valori in NEW

ho anche notato che la seguente affermazione non è comunque ciò che desideri.

update pos_table set PTS=((NEW.won_games*2)+(NEW.tie_games*1));

Aggiorna l'intera tabella mentre penso che tu stia solo cercando di aggiornare una riga specifica. Ad ogni modo, questo è un semplice calcolo, quindi non è necessario memorizzare questa colonna. Puoi altrettanto facilmente calcolare il valore al momento della visualizzazione e rendere il tuo codice molto più semplice + evitare il problema con il trigger.