sql >> Databáze >  >> RDS >> Mysql

Spouštěč MySQL nemůže aktualizovat tabulku – získává ERROR 1442

Příznak je, že spouštíte UPDATE (pro všechny řádky) uvnitř INSERT trigger – obě modifikují tabulku, což není povoleno.

To znamená, že pokud správně odhadnu záměr vašeho spouštěče, nechcete aktualizovat vše řádky, ale pouze nově vložený řádek. Můžete toho snadno dosáhnout pomocí

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

Pamatujte, že toto je BEFORE INSERT trigger, protože chcete změnit řádek před jeho zapsáním do tabulky.



  1. Node.js a mysql Callback:dotaz v dotazu callback

  2. Velikost pro ukládání adres IPv4, IPv6 jako řetězce

  3. Jak zjistíte velikost disku tabulky Postgres / PostgreSQL a její indexy

  4. Výběr více hodnot max() pomocí jediného příkazu SQL