Mysql
 sql >> база данни >  >> RDS >> Mysql

#1442 – Не може да се актуализира таблица „*“ в съхранена функция/тригер, тъй като вече се използва от израз, който е извикал тази съхранена функция/тригер

Това няма да ви позволи да актуализирате таблицата, защото тя вече се чете от INSERT INTO.. SELECT заявка, която извиква този тригер.

Алтернативен начин би бил да деактивирате тригера и да актуализирате таблицата на потребителите отделно, напр.:

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

Можете да добавите колона за присъединяване с ON клауза, ако има колона, която свързва тези две таблици.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изтрийте записи, които не присъстват в присъединяването

  2. Поддържа ли релсите тип данни mysql json

  3. Някакъв начин да изберете от таблицата на MySQL, където полето завършва с определен знак/число?

  4. Сортиране в MySQL с помощта на подреждане по клауза

  5. Условието MySQL WHERE в процедурата е игнорирано