Mi fate un esempio di un trigger che impedisca l'insermento di una riga che non rispetta certi vincoli?

Il mio scopo è sostituire un check perchè in MySQL non vengono accettati

il mio check sarebbe del tipo

CONSTRAINT chk_stato CHECK (STATO IN (1, 2, 3));

se aggiungo un trigger del tipo:

CREATE TRIGGER TR_chk_statoPartita
AFTER INSERT
ON Partita
FOR EACH ROW
DELETE FROM partita
where stato <= 0 AND stato >= 2;

me lo accetta ma non mi fa inserire nulla nella tabella Partita e quando provo ad inserire qualcosa mi dice:

ERROR 1442 (HY000): Can't update table 'partita' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.


Dove sbaglio???