Ошибка MySQL в инструкции select внутри триггера
Я недавно начал работать над MySQL n прямо сейчас я хочу создать триггер, но MySQL возвращает ошибку в моем синтаксисе.
delimiter $$;
create trigger abc after insert on ratings
for each row
begin
set @n1 = select avg(rating) from ratings join users where ratings.uname=users.uname
and ratings.bookid=new.bookid users.`type`='admin' or users.`type`='critic';
update books set avgcriticrating = @n1 where bookid=new.bookid;
end;
Оператор select отлично работает при выстреле сам по себе, но дает ошибку, когда я использую его внутри триггера.
Вот ошибка, которую дает MySQL
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select avg(rating) from ratings join users where ratings.uname=users.uname an' at line 4
И книги, и таблица рейтингов содержат поле под названием bookid.
Пожалуйста, помогите
1 ответ:
Если вы хотите получить одно значение из инструкции select, то она должна быть заключена в квадратные скобки.
set @n1 = (select avg(rating) from ratings join users where ratings.uname=users.uname and ratings.bookid=new.bookid users.`type`='admin' or users.`type`='critic');Следующая ошибка произойдет в
new.bookid users- там может бытьandилиorотсутствует.
Comments