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

Моят MySQL тригер не работи, прост синтаксис, не е сложен

Съхранена функция или тригер не може да променя таблица, която вече се използва (за четене или запис) от израза, който е извикал функцията или тригера.

от:Ограничения на съхранените програми .

Обикновено със задействане, което се задейства при вмъкване, ако искате да промените стойността, която се вмъква, правите тригера от типа BEFORE INSERT и променете стойностите в NEW

също така забеляза, че следното твърдение не е това, което искате.

update pos_table set PTS=((NEW.won_games*2)+(NEW.tie_games*1));

Той актуализира цялата таблица, докато мисля, че се опитвате да актуализирате само определен ред. Както и да е, това е просто изчисление, така че всъщност не е необходимо да съхранявате тази колона. Можете също толкова лесно да изчислите стойността по време на показване и да направите кода си много по-опростен + да избегнете проблема със задействането.



  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

  3. Как да поправите MySQL база данни в cPanel

  4. Как мога да предотвратя SQL инжектирането в PHP?

  5. Код на грешка 1292 - Отсечена неправилна DOUBLE стойност - Mysql