Mysql If существует сбой, когда два одновременных запроса. Как исправить эту проблему?

0

Я написал код для вставки запроса, когда только конкретное условие не существует, но оно терпит неудачу только тогда, когда из браузера выходят два одновременных запроса. Таким образом, дублирующая запись происходит в базе данных. Я использовал это в хранимой процедуре.

Пример:

if not exists(select * from tblUser where Email=dEmail and status=2) then
   insert into tbluser(Name,Email,Status) values (dName,dEmail,dStatus);
else
   Update tblUser set Name=dName where Email=dEmail and status=2;
end if;

Пожалуйста, скажите мне хорошее решение.

  • 0
    Моя MySQL версия 5.6.37
  • 0
    Что ты имеешь в виду "это не удается"? Есть ли ошибка? Если так, то в чем ошибка? Если нет, опишите проблему. Кроме того, является ли сохраненный процесс фактическим кодом, в котором возникла проблема, или имитацией? Если имитация, пожалуйста, покажите фактический код.
Показать ещё 2 комментария
Теги:
mysql-workbench

1 ответ

0

Вы можете добавить составную уникальную клавишу в свою таблицу, чтобы избежать дублирования.

ALTER TABLE 'tblUser ' ADD UNIQUE 'unique_index'(Email,Status);
  • 0
    Это может дать исключение, я не хочу этого.
  • 0
    Исключения не являются ошибками, поэтому вы можете соответствующим образом обработать их в своем приложении.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню