sql >> Database >  >> RDS >> Mysql

#1442 - Kan tabel '*' in opgeslagen functie/trigger niet bijwerken omdat deze al wordt gebruikt door een instructie die deze opgeslagen functie/trigger heeft aangeroepen

U kunt de tabel niet bijwerken omdat deze al wordt gelezen door de INSERT INTO.. SELECT query die deze trigger aanroept.

Een alternatieve manier zou zijn om de trigger uit te schakelen en de gebruikerstabel afzonderlijk bij te werken, bijvoorbeeld:

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

Je kunt een join-kolom toevoegen met ON clausule als er een kolom is die deze twee tabellen met elkaar verbindt.




  1. T-SQL:alle dubbele rijen verwijderen, maar er één behouden

  2. MySQL-fout 150, kan geen tabel maken

  3. Uw PostgreSQL-back-ups valideren op Docker

  4. mysql-tellingswoord in sql-syntaxis