我正在尝试创建一个触发器,它将在插入记录后触发,我将看到是否有其他类似于此插入记录(相同日期)的记录,如果是,将更新插入记录中的列。一旦我完成了这个,我也将更新它以进行AFTER更新。任何帮助将不胜感激。
CREATE
TRIGGER `INSERT_POSTDATEINDEX` AFTER INSERT
ON `zoomloca_listings-dev`.`listings_posts`
FOR EACH ROW
BEGIN
DECLARE vNewPostDateIndex INT;
DECLARE vLastPostDateIndex INT DEFAULT '0';
SET vNewPostDateIndex = '0';
SET vLastPostDateIndex = (SELECT POSTDATEINDEX FROM listings_posts WHERE date(POST_DATE) = date(NEW.POST_DATE) ORDER BY POSTDATEINDEX DESC LIMIT 1);
IF vLastPostDateIndex = '0' THEN
SET vNewPostDateIndex = '0';
ELSE
SET vNewPostDateIndex = vLastPostDateIndex + 1;
END IF;
Update `listings_posts` SET POSTDATEINDEX = vNewPostDateIndex where ID = New.ID;
END
错误:#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第6行
答案 0 :(得分:1)
问题是TOP
中没有MySQL
。您必须使用LIMIT
。此外,如果您未使用mysql
客户端,则应删除DELIMITER
,因为它不是MySQL
的功能。另一件事是,要在MySQL中划分IF
语句的结尾,您应该使用END IF
而不是ENDIF
。