So yes, I can see 2 reasons not to check everything : - the amount of extra code to write and maintain
- the performance penalty of all those checks being executed on every update.
If you have the budget to make a nice generic solution, I could imagine some hybrid approach where you let the database exception go off, and only in the exception handler execute the checks to avoid performance penalty in the happy flow. And make use of the metamodel to execute the validations instead of coding them out, to avoid the burden of coding and maintaining the validations.
Dorine