so einfach geht das nicht. ein trigger darf nicht schreibend auf jene tabelle zugreifen, auf der der trigger liegt. dein ansatz ist sowieso meiner meinung nach falsch: die datenbank sollte verhindern, dass ungültige datensätze erfasst werden können und nicht klammheimlich diese entfernen. das db-frontend ist dafür zuständig, sinnlose inserts zu filtern.
ich würde also eher entweder einen check-constraints anlegen (keine ahnung, ob mysql sowas bietet). versucht das frontend ein insert mit zwei gleichen werten, kommt eine datenbankfehlermeldung. das frontend kann dann immer noch diesen fehler ignorieren.
es geht auch mit einem trigger - dieser muss einfach eine fehlermeldung produzieren, wenn ungültige werte daherkommen oder gar nicht tun, wenn alles ok ist.