sql >> Databasteknik >  >> RDS >> Mysql

MySQL - Trigger för uppdatering av samma tabell efter infogning

Det verkar som att du inte kan göra allt detta i en trigger. Enligt dokumentationen :

Inom en lagrad funktion eller utlösare är det inte tillåtet att modifiera en tabell som redan används (för läsning eller skrivning) av det påstående som anropade funktionen eller utlösaren.

Enligt det här svaret , det verkar som att du borde:

skapa en lagrad procedur som infogar i/uppdaterar måltabellen och sedan uppdaterar de andra raden(erna), allt i en transaktion.

Med en lagrad proc kommer du att utföra ändringarna manuellt (infoga och uppdatera). Jag har inte gjort detta i MySQL, men det här inlägget ser ut som ett bra exempel.



  1. Oracle CLOB kan inte infoga mer än 4000 tecken?

  2. Datum- och tidsenheter i MySQL (fullständig lista)

  3. Fråga för att beräkna både ackumulerad och total SUM över lönen

  4. Byt namn på en CHECK-begränsning i SQL Server med T-SQL