Leggiti questo interessante articolo

http://forge.mysql.com/wiki/Triggers...ck_Constraints

Oppure, una soluzione più semplice potrebbe essere quella di definire il campo voto come not null e settarlo a null nel caso il voto non sia compreso tra 18 e 30 in modo da impedirne l'inserimento.


codice:
delimiter $$
create trigger check_voto before insert on tabella for each row
begin
 if new.voto < 18 or new.voto > 30 then
        set new.voto = null;
 end if;
end $$
delimiter ;