С точки зрения базы данных вы, как правило, накладываете уникальное ограничение на соответствующий столбец таблицы:
create table users (
id int auto_increment primary key,
name varchar(50) not null,
email varchar(100) not null unique
);
При такой настройке любой запрос, который попытается создать дубликат email
(либо из INSERT
или UPDATE
) потерпит неудачу с уникальной ошибкой нарушения соглашения.