La regla general es usar CHECK restricción cuando sea posible.
UN CHECK La restricción es más rápida, más simple, más portátil, necesita menos código y es menos propensa a errores. Los disparadores pueden ser eludidos fácilmente por otros disparadores, por ejemplo.
UN TRIGGER es mas complicado Úselo cuando deba hacerlo , para requisitos más complejos.
Si un CHECK la restricción es demasiado restrictiva para su caso o causa problemas para volver a cargar un volcado, puede usar NOT VALID modificador como término medio (Postgres 9.2+). Y, opcionalmente, VALIDATE eso mas tarde. Ver:
- Deshabilitar todas las restricciones y comprobaciones de tablas al restaurar un volcado