Что я пытаюсь сделать, это проверить электронную почту определенного регистра по триггеру.Например, если клиент зарегистрирован в первый раз, он должен создать электронное письмо с именем и фамилией (пример: user.last@email.com) , однако, если уже есть регистр с таким именемследует создать электронное письмо таким же образом, указав имя и фамилию после customer_id (пример: user.last2@email.com) .
Код, который у меня есть, следующий:
delimiter $
create trigger before_customer_insert
before insert on customer
for each row
begin
declare emailVal varchar(45);
declare checkData int;
declare checkData2 int;
set checkData = (select count(first_name) from customer where first_name = new.first_name);
set checkData2 = (select count(last_name) from customer where last_name = new.last_name);
if((checkData = 1) and (checkData2 = 1)) then
set new.email = (concat(new.first_name,'.', new.last_name, '@sakilacustomer.org'));
else
set new.email = (concat(new.first_name,'.', new.last_name, new.customer_id, '@sakilacustomer.oeg'));
end if;
if(new.kind_customer is null) then
set new.kind_customer = '1';
end if;
set new.active = 1;
end $
Проблема, с которой я сталкиваюсь, заключается в том, что, когда это первый регистр, он вставляет письмо, но, например, с 0"name.last0@email.com", и если я пытаюсь вставить с той же информацией, показывает тот же адрес электронной почты.Я пытался изменить логику в операторах if, но все равно показывал те же проблемы.