这是我创建触发器的查询。它有些不对劲但我无法找到它。
触发器需要什么 - 我想为total_login列创建触发器。我在同一个表中有last_login列。我在用户登录时更新last_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
答案 0 :(得分:1)
您不需要另一个UPDATE,您可以在触发器中设置此列。我也建议使用BEFORE UPDATE触发器:
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
答案 1 :(得分: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 ;