CHECK
Las restricciones no son compatibles con MySQL. Puede definirlos, pero no hacen nada (a partir de MySQL 5.7).
Del manual :
El CHECK
la cláusula es analizada pero ignorada por todos los motores de almacenamiento.
La solución es crear disparadores , pero no son lo más fácil de trabajar.
Si desea un RDBMS de código abierto que admita CHECK
restricciones, pruebe PostgreSQL
. De hecho, es una muy buena base de datos.