Restricción CHECK
Característica de SQL: un predicado que cada fila debe cumplir. CHECK (age >= 0). Validación a nivel de base de datos en lugar de en el código de la aplicación: garantiza el invariante aunque escriba otro cliente.
Buena para reglas de dominio: status IN ('active','pending','closed'), email LIKE '%@%', start_date < end_date. PostgreSQL las soporta por completo; MySQL las ignoró durante mucho tiempo (las parseaba pero no las hacía cumplir), corregido en 8.0.16 (2019). Se combina a menudo con tipos DOMAIN para expresar validaciones complejas. Rendimiento: los checks simples son gratis en INSERT/UPDATE; los checks con subconsulta (CHECK con SELECT) no existen en el estándar SQL. Las exclusion constraints de PostgreSQL son una idea parecida para la validación entre filas.