Are you able to manage privileges on the server? I've never tried it, but I believe that in MySQL 5.1 and above, you could revoke any write privileges on the customer.amount
column from your application's database user, while leaving the privilege to read the column and execute table triggers. Providing the user you use to create the trigger has permission to modify the amount
column, less privileged users should then be able to still use the trigger.
Unless I have misunderstood the documentation... which is possible.