MYSQL:Tigger中的错误

MYSQL:Tigger中的错误,mysql,sql,triggers,Mysql,Sql,Triggers,这是我对创建触发器的查询。有点不对劲,但我找不到 触发器所需的内容-我想为total_login列创建触发器。我在同一个表中有最后一个登录列。当用户登录时,我正在更新上次登录列。所以我想为此创建触发器 有人能帮忙吗 CREATE TRIGGER updateTotalLogin AFTER UPDATE ON users FOR EACH ROW BEGIN if NEW.last_login <> OLD.last_login then UPDATE users

这是我对创建触发器的查询。有点不对劲,但我找不到

触发器所需的内容-我想为total_login列创建触发器。我在同一个表中有最后一个登录列。当用户登录时,我正在更新上次登录列。所以我想为此创建触发器

有人能帮忙吗

CREATE  TRIGGER  updateTotalLogin AFTER UPDATE ON users
 FOR EACH ROW
BEGIN
if NEW.last_login <> OLD.last_login
then
       UPDATE users SET total_login = (total_login + 1) ;
end if
END
在用户更新后创建触发器updateTotalLogin
每行
开始
如果是NEW.last\u登录则为OLD.last\u登录
然后
更新用户设置total_login=(total_login+1);
如果结束
结束

您不需要再次更新,您可以在触发器的此处设置此列。我建议也使用更新前触发器:

CREATE  TRIGGER  updateTotalLogin BEFORE UPDATE ON users
 FOR EACH ROW
 BEGIN
 if NEW.last_login <> OLD.last_login
 then
       SET NEW.total_login = OLD.total_login + 1;
 end if
 END
在对用户进行更新之前创建触发器updateTotalLogin
每行
开始
如果是NEW.last\u登录则为OLD.last\u登录
然后
设置NEW.total\u login=OLD.total\u login+1;
如果结束
结束

您必须尝试使用分隔符

DELIMITER $$

CREATE  TRIGGER  updateTotalLogin BEFORE UPDATE ON users
FOR EACH ROW
BEGIN
IF NEW.last_login <> OLD.last_login THEN
   SET NEW.total_login = OLD.total_login + 1;
END IF;
END$$

DELIMITER ;
分隔符$$
在对用户进行更新之前创建触发器updateTotalLogin
每行
开始
如果NEW.last\u登录为OLD.last\u登录,则
设置NEW.total\u login=OLD.total\u login+1;
如果结束;
结束$$
定界符;

要编写的内容是在表更新时更新表的内容。你看不出来这是怎么回事吗?提示:update…update…update…update…update…update…update…update…它抛出错误:
#1064-您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解要使用的正确语法,第6行的near'.total_login=OLD.total_login+1'
我错过了前面提到的fancyPants。现已修复。仍然抛出错误:
#1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获取第6行“”附近使用的正确语法