How to disable triggers from nesting/recursing when accessing the same table
You don't need an update statement: 

In a "before update" trigger, you can directly change any of the values in the new row.  

if ( old.amount &lt;&gt; new.amount &amp;&amp; old.accid = new.accid ) then
   set adj = new.amount - old.amount ; 
   set new.accid_curr_accbalance = new.accid_curr_accbalance + adj ; 
else
   . . .