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

MySQL Trigger не може да актуализира таблицата - получава се ГРЕШКА 1442

Симптомът е, че изпълнявате UPDATE (за всички редове) вътре в INSERT тригер - и двете променят таблицата, което не е разрешено.

Въпреки това, ако предполагам намерението на вашето задействане правилно, не искате да актуализирате всички редове, но само нововмъкнатия ред. Можете да постигнете това лесно с

CREATE TRIGGER sum
BEFORE INSERT
ON news
FOR EACH ROW
SET NEW.sum = (NEW.int_views + NEW.ext_views)/NEW.pageviews

Имайте предвид, че това е BEFORE INSERT тригер, тъй като искате да промените реда, преди да бъде записан в таблицата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на JDeveloper с MySQL база данни и Oracle Database на AWS RDS, част 2

  2. Генериране на дърво на базата на дълбочина от йерархични данни в MySQL (без CTEs)

  3. Добавете външен ключ към съществуваща таблица

  4. Как да закръглите клеймо за време в MySQL

  5. mysql актуализира няколко колони със същото сега()