This looks like it'd be better handled with a uniqueness validation.