Mysql
 sql >> Baza danych >  >> RDS >> Mysql

#1442 – Nie można zaktualizować tabeli „*” w przechowywanej funkcji/wyzwalaczu, ponieważ jest już używana przez instrukcję, która wywołała tę przechowywaną funkcję/wyzwalacz

Nie pozwoli Ci zaktualizować tabeli, ponieważ jest już odczytywana przez INSERT INTO.. SELECT zapytanie, które wywołuje ten wyzwalacz.

Alternatywnym sposobem byłoby wyłączenie wyzwalacza i osobne zaktualizowanie tabeli użytkowników, np.:

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

Możesz dodać kolumnę przyłączenia z ON klauzulę, jeśli istnieje jakakolwiek kolumna, która łączy te dwie tabele.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP:json_encode() nie pokazuje niczego z tablicą wielowymiarową

  2. Nie pamiętam hasła skrypt PHP mysqli

  3. Podzapytanie MySQL - MySQL 3.23

  4. Czy mój osobisty serwer MySQL wyłącza się po wyłączeniu komputera?

  5. Alternatywa dla mysql_insert_id w mysql?