sql >> Databáze >  >> RDS >> Mysql

#1442 - Nelze aktualizovat tabulku '*' v uložené funkci/spouštěči, protože ji již používá příkaz, který tuto uloženou funkci/spouštěč vyvolal

Neumožní vám aktualizovat tabulku, protože ji již čte INSERT INTO.. SELECT dotaz, který tento spouštěč vyvolá.

Alternativním způsobem by bylo deaktivovat spouštěč a samostatně aktualizovat tabulku uživatelů, např.:

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

Sloupec spojení můžete přidat pomocí ON klauzule, pokud existuje nějaký sloupec, který tyto dvě tabulky spojuje.




  1. Připojte se k nám a získejte úvod do přístupu k SQL Serveru

  2. Jak najít kolace podporované serverem v MySQL

  3. najít po sobě jdoucí transakci do 10 minut

  4. Jak extrahovat opakovatelné hodnoty uzlů json odděleně od XML pomocí ORACLE SQL?