Cita:
Iniciado por gnzsoloyo En MySQL no puedes usar TRIGGERS para suplir la falta de CHECK.. Restricciones de ese tipo solo pyeden simularse parcialmente usando la clausula SIGNAL para crear errores funcionales personalizados. Pero sería hacer fallar la inserción o actualización, y no corregirlo.
Puede que Te sirvan para asignar valores límite., pero tienes que tener en cuenta que todas las demás restricciones de la tabla se disparan antes que el trigger.
Te recomiendo empezar leyendo el manual de referencia antes que nada.
Entonces para esta función se podría usar "set" como tipo de datos.
Es decir, modificar la tabla pero cambiando la columna turno a un dato tipo "set" y poniendo las tres únicas opciones.
De esta forma:
Código SQL:
Ver originalALTER TABLE camareros
MODIFY turno SET('mañana','tarde','noche') NOT NULL;
No lo recuerdo bien, pero creo que el "set" sirve para que solo sean posibles los valores dados y que si se añade otro valor además de esos se rechaza.