Mysql
 sql >> Base de données >  >> RDS >> Mysql

#1442 - Impossible de mettre à jour la table '*' dans la fonction/le déclencheur stocké car il est déjà utilisé par l'instruction qui a appelé cette fonction/le déclencheur stocké

Cela ne vous permettra pas de mettre à jour la table car elle est déjà lue par le INSERT INTO.. SELECT requête qui appelle ce déclencheur.

Une autre façon serait de désactiver le déclencheur et de mettre à jour la table des utilisateurs séparément, par exemple :

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";

Vous pouvez ajouter une colonne de jointure avec ON clause s'il y a une colonne qui relie ces deux tables.