sql >> Database >  >> RDS >> Mysql

Mijn MySQL-trigger werkt niet, eenvoudige syntaxis, niet ingewikkeld

Een opgeslagen functie of trigger kan een tabel die al wordt gebruikt (voor lezen of schrijven) niet wijzigen door de instructie die de functie of trigger heeft aangeroepen.

from:Beperkingen voor opgeslagen programma's .

Over het algemeen met een trigger die wordt geactiveerd bij invoegen, als u de waarde die wordt ingevoegd wilt wijzigen, maakt u de trigger van het type BEFORE INSERT en verander de waarden in NEW

merkte ook op dat de volgende verklaring toch niet is wat je wilt.

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

Het werkt de hele tabel bij, terwijl ik denk dat je alleen een specifieke rij probeert bij te werken. Hoe dan ook, dit is een eenvoudige berekening, dus u hoeft deze kolom niet echt op te slaan. U kunt net zo gemakkelijk de waarde berekenen op het moment van weergave en uw code een stuk eenvoudiger maken + het probleem met de trigger vermijden.



  1. Een nieuwe Oracle-gebruiker maken en bevoegdheden verlenen:syntaxis en voorbeelden

  2. Oracle naar PostgreSQL:redenen om te migreren

  3. Postgresql json zoals query

  4. Is het nodig om DbCommand na gebruik weg te gooien?