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

#1442 - Impossibile aggiornare la tabella '*' nella funzione/trigger memorizzata perché è già utilizzata dall'istruzione che ha richiamato questa funzione/trigger memorizzata

Non ti permetterà di aggiornare la tabella perché è già stata letta da INSERT INTO.. SELECT query che richiama questo trigger.

Un modo alternativo sarebbe disabilitare il trigger e aggiornare la tabella degli utenti separatamente, ad esempio:

INSERT INTO signed (time_of_start, player)
SELECT time_of_game_id, users.user_id FROM time_of_game, users
WHERE time_of_game.time_of_start="2017-02-01 12:00:00"
AND users.steamid="1234567890123456";

UPDATE users join time_of_game SET users.credit = users.credit-1
where time_of_game.time_of_start="2017-02-01 12:00:00"
AND users.steamid="1234567890123456";

Puoi aggiungere una colonna di join con ON clausola se esiste una colonna che collega queste due tabelle.