Let's say I have a database column that should always be in uppercase.
Here are a couple of ideas:
1) Create a column constraint of: col = UPPER(col)
2) Create an before insert/update row trigger that sets: col = UPPER(col)
Usually the more constraints on your database data the better, and triggers can be mysterious and bad. Assume that the developers writing code are in the same organisation and so the code they write can be modified by us.
Which approach would you use and why?
It has to be uppercase because the data in question is actually always in uppercase (it's originally printed that way by various third-parties). There is no meaning in uppercase vs lowercase for this particular field.