Yeah I also used triggers at the start. There are 2 things that this implementation achieve over triggers.
1. Triggers have an 8000 byte limit. I ran against these limits pretty quickly
2. You need to attach the trigger each time you create a new table. With this you can set and forget