Mysql
 sql >> Datenbank >  >> RDS >> Mysql

#1442 – Tabelle „*“ in gespeicherter Funktion/Trigger kann nicht aktualisiert werden, da sie bereits von der Anweisung verwendet wird, die diese gespeicherte Funktion/Trigger aufgerufen hat

Sie können die Tabelle nicht aktualisieren, da sie bereits von INSERT INTO.. SELECT gelesen wird Abfrage, die diesen Trigger aufruft.

Eine alternative Möglichkeit wäre, den Trigger zu deaktivieren und die Benutzertabelle separat zu aktualisieren, z. B.:

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

Sie können eine Join-Spalte mit ON hinzufügen -Klausel, wenn es eine Spalte gibt, die diese beiden Tabellen verbindet.