sql >> Database >  >> RDS >> Mysql

MySQL Trigger kan de tabel niet bijwerken - krijg ERROR 1442

Het symptoom is dat u een UPDATE . uitvoert (voor alle rijen) in een INSERT trigger - beide wijzigen de tabel, wat niet is toegestaan.

Dat gezegd hebbende, als ik de bedoeling van je trigger correct vermoed, wil je niet alles bijwerken rijen, maar alleen de nieuw ingevoegde rij. U kunt dat gemakkelijk bereiken met

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

Let op:dit is een BEFORE INSERT trigger, omdat u de rij wilt wijzigen voordat deze naar de tabel wordt geschreven.



  1. Onbedoelde bijwerkingen - Slaapsessies die sloten vasthouden

  2. Grondbeginselen van tabeluitdrukkingen, deel 1

  3. Beste tool voor het synchroniseren van MySQL-databases

  4. Wat is het verschil tussen pg_table_size, pg_relation_size &pg_total_relation_size? (PostgreSQL)