0

我尝试从 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 秒

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

4

1 回答 1

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 |
于 2012-08-02T14:32:36.313 回答