PhpMyAdmin通过创建触发器来冻结

时间:2012-07-14 12:25:05

标签: mysql sql phpmyadmin

我尝试从PhpMyAdmin的SQL控制台创建一个触发器,但导航器无限加载

DELIMITER |
CREATE TRIGGER before_insert_history BEFORE INSERT
ON history FOR EACH ROW
BEGIN
INSERT INTO newsfeed(user_ID, date_action, action, pg_ID, rk_ID, vote) 
VALUES (NEW.user_ID, NOW(), "vote", NEW.page_ID, NEW.ranking_ID, SELECT IF(NEW.liked='1','1','-1') AS vote );
END |
DELIMITER ;

经过一段时间我有这个错误:致命错误:第259行的C:\ wamp \ apps \ phpmyadmin3.2.0.1 \ libraries \ import \ sql.php超过了300秒的最长执行时间

也许这是一个分隔符问题,但我选择了“;”在控制台底部的分隔符字段中。

1 个答案:

答案 0 :(得分:0)

delimiter是MySQL客户端命令,而不是SQL。我相信您需要从PHPMyAdmin的SQL选项卡上的下拉框中选择|作为分隔符,然后使用您在此处发布的相同代码而不使用delimiter命令。

我只是在delimiter命令中尝试了一个简单的语句,虽然第一个delimiter命令似乎没有做太多,但第二个命令却导致它挂起。在我的情况下删除它解决了它。

CREATE TRIGGER before_insert_history BEFORE INSERT
ON history FOR EACH ROW
BEGIN
INSERT INTO newsfeed(user_ID, date_action, action, pg_ID, rk_ID, vote) 
VALUES (NEW.user_ID, NOW(), "vote", NEW.page_ID, NEW.ranking_ID, SELECT IF(NEW.liked='1','1','-1') AS vote );
END |