sql >> Database teknologi >  >> RDS >> Mysql

MySQL Trigger kan ikke opdatere tabellen - får ERROR 1442

symptomet er, at du kører en OPDATERING (for alle rækker) inde i en INSERT trigger - begge ændrer tabellen, hvilket ikke er tilladt.

Når det er sagt, hvis jeg gætter hensigten med din udløser korrekt, ønsker du ikke at opdatere alle rækker, men kun den nyindsatte række. Det kan du nemt opnå med

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

Husk at dette er en FØR INDSÆT trigger, da du vil ændre rækken, før den skrives til tabellen.



  1. SQL-opdatering af felter i en tabel fra felter i en anden

  2. hvordan man administrerer forbindelser til dynamisk oprettede databaser

  3. Hvad svarer til LISTAGG (Oracle-database) i PostgreSQL?

  4. nulstil root-adgangskoden med forkert mysql-konfiguration