If you’ve ever used non-opensource code, or applications that you
don’t have complete control over, then you may have run into
situations you need to alter data on a per-row basis but been
unable to do so for lack of application SQL access. The solution
to this type of problem is to use a MySQL TRIGGER, which allows
us to execute arbitrary SQL commands when defined events occur.
Why is this useful and how does it work? Well…
For example, I have a freeRADIUS server that uses MySQL as a
backend for the user authentication, and one of my server
applications (HostBill) provides a freeRADIUS plugin that allows
my users to manage their RADIUS accounts; however the default
freeRADIUS schema lacks a DATETIME column on the user table. When
a user is created (INSERT) or has their password changed (UPDATE)
I have no row data that tells me the dates when these operations
were issued. Typically this would be a trivial change: issue an
ALTER TABLE …
[Read more]