应用触发器时 PHPMYAdmin 冻结
PHPMYAdmin FREEZES when applying Trigger
我正在使用这个跟随触发器
DELIMITER ;
CREATE TRIGGER updateCount
AFTER INSERT ON user_info
FOR EACH ROW
BEGIN
UPDATE users SET counter=counter+1 WHERE users.id = (SELECT `user_info`.`bookmark_id` from `user_info` WHERE user_info.id = NEW.id) ;
END;
//
delimiter ;
编辑:
我也用过这个
delimiter //
CREATE TRIGGER updateCount
AFTER INSERT ON user_info
FOR EACH ROW
BEGIN
UPDATE users SET counter=counter+1 WHERE users.id = (SELECT `user_info`.`bookmark_id` from `user_info` WHERE user_info.id = NEW.id) ;
END;
//
delimiter ;
这在我的本地 .但在现场 phpmyadmin 冻结
有什么想法吗?
谢谢
这应该适合你:
DELIMITER //
DROP TRIGGER IF EXISTS updateCount//
CREATE TRIGGER updateCount
AFTER INSERT ON user_info
FOR EACH ROW
BEGIN
UPDATE users SET counter=counter+1 WHERE users.id = (SELECT `user_info`.`bookmark_id` from `user_info` WHERE user_info.id = NEW.id);
END//
DELIMITER ;
我怀疑分隔符会导致触发器挂起。
您在 user_info(id)
和 users(id)
上有索引吗?
另一种可能性是 users
由于某种原因被锁定。
我正在使用这个跟随触发器
DELIMITER ;
CREATE TRIGGER updateCount
AFTER INSERT ON user_info
FOR EACH ROW
BEGIN
UPDATE users SET counter=counter+1 WHERE users.id = (SELECT `user_info`.`bookmark_id` from `user_info` WHERE user_info.id = NEW.id) ;
END;
//
delimiter ;
编辑:
我也用过这个
delimiter //
CREATE TRIGGER updateCount
AFTER INSERT ON user_info
FOR EACH ROW
BEGIN
UPDATE users SET counter=counter+1 WHERE users.id = (SELECT `user_info`.`bookmark_id` from `user_info` WHERE user_info.id = NEW.id) ;
END;
//
delimiter ;
这在我的本地 .但在现场 phpmyadmin 冻结
有什么想法吗?
谢谢
这应该适合你:
DELIMITER //
DROP TRIGGER IF EXISTS updateCount//
CREATE TRIGGER updateCount
AFTER INSERT ON user_info
FOR EACH ROW
BEGIN
UPDATE users SET counter=counter+1 WHERE users.id = (SELECT `user_info`.`bookmark_id` from `user_info` WHERE user_info.id = NEW.id);
END//
DELIMITER ;
我怀疑分隔符会导致触发器挂起。
您在 user_info(id)
和 users(id)
上有索引吗?
另一种可能性是 users
由于某种原因被锁定。