Обновление 2021.12.5
В ходе теста было обнаружено, что после добавления ссылающейся новой строки в качестве оператора newtuple возникает ошибка 42000. После проверки официальной документации mysql8.0 были внесены улучшения. Код выглядит следующим образом:
delimiter //
create trigger xxx
before insert on xx
for each statement
begin
set @i := 1;
set @a := (select a from xxx where x = NEW.x);
end//
delimiter ;
Удалите ссылки и используйте NEW для обозначения новых строк.
delimiter //
create trigger xxx
before insert on xx
referencing new row as newtuple
for each statement
begin
set @i := 1;
set @a := (select a from xxx where x = newtuple.x);
end//
delimiter ;
разделитель //
Переопределить символ идентификации разделителя (первоначально ";")
set @a := 1;
Определить пользовательские переменные
Примечание. Чтобы присвоить значения, используйте «:=", «=" — оператор сравнения
разделитель;
восстановить исходное распознавание разделителя