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.