[英]MYSQL trigger syntax error. #1064
delimiter //
CREATE TRIGGER Raiting_added AFTER INSERT ON raiting
FOR EACH ROW
BEGIN
declare del INT;
SET del = (SELECT COUNT( rait_id ) FROM `raiting` WHERE NEW.movie_id AND user = NEW.user);
IF del > 0 THEN
DELETE FROM movies WHERE movie_id = NEW.movie_id AND user = NEW.user
END IF;
UPDATE movies
SET raiting = ( SELECT ROUND( AVG( seted_rait ) , 1 )
FROM `raiting`
WHERE movie_id = NEW.movie_id)
WHERE movie_id = NEW.movie_id
END
delimiter;
Error : #1064 - You have an error in your SQL syntax;
错误:#1064-您的SQL语法有错误; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END IF;
检查与您的MySQL服务器版本相对应的手册,以在'END IF附近使用正确的语法; UPDATE movies SET raiting = ( SELECT ROUND( AVG( seted_rait ) , 1 ) ' at line 10
更新电影SET raining =(SELECT ROUND(AVG(seted_rait),1)'在第10行
what is problem? 有什么问题 can someone help?
有人可以帮忙吗?
You have forgotten "= movie_id" and few semicolons 您忘记了“ = movie_id”和几个分号
delimiter //
CREATE TRIGGER Raiting_added AFTER INSERT ON raiting
FOR EACH ROW
BEGIN
declare del INT;
SET del = (SELECT COUNT( rait_id ) FROM `raiting` WHERE NEW.movie_id AND user = NEW.user);
IF del > 0 THEN
DELETE FROM movies WHERE movie_id = NEW.movie_id AND user = NEW.user;
END IF;
UPDATE movies
SET raiting = ( SELECT ROUND( AVG( seted_rait ) , 1 )
FROM `raiting`
WHERE movie_id = NEW.movie_id)
WHERE movie_id = NEW.movie_id;
END;
//
delimiter ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.