【发布时间】:2016-12-19 15:44:18
【问题描述】:
我想在 MySQL 中创建一个触发器,但出现语法错误。 我尝试使用 PHPMyAdmin 或直接从 MySQL 客户端运行查询。
这是错误:
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 5 行的 '' 附近使用正确的语法
CREATE TRIGGER asterisk.bi_queueEvents BEFORE INSERT ON aasterisk.queue_log
FOR EACH ROW
BEGIN
IF (NEW.event = 'ADDMEMBER')THEN
INSERT INTO agent_status (agentId,agentStatus,timestamp,callid) VALUES (NEW.agent,'READY',FROM_UNIXTIME(NEW.time),NULL) ON DUPLICATE KEY UPDATE agentStatus = "READY", timestamp = FROM_UNIXTIME(NEW.time), callid = NULL;
ELSIF (NEW.event = 'REMOVEMEMBER')THEN
INSERT INTO agent_status (agentId,agentStatus,timestamp,callid) VALUES (NEW.agent,'LOGGEDOUT',FROM_UNIXTIME(NEW.time),NULL) ON DUPLICATE KEY UPDATE agentStatus = "LOGGEDOUT", timestamp = FROM_UNIXTIME(NEW.time), callid = NULL;
ELSIF (NEW.event = 'PAUSE')THEN
INSERT INTO agent_status (agentId,agentStatus,timestamp,callid) VALUES (NEW.agent,'PAUSE',FROM_UNIXTIME(NEW.time),NULL) ON DUPLICATE KEY UPDATE agentStatus = "PAUSE", timestamp = FROM_UNIXTIME(NEW.time), callid = NULL;
ELSIF (NEW.event = 'UNPAUSE')THEN
INSERT INTO agent_status (agentId,agentStatus,timestamp,callid) VALUES (NEW.agent,'READY',FROM_UNIXTIME(NEW.time),NULL) ON DUPLICATE KEY UPDATE agentStatus = "READY", timestamp = FROM_UNIXTIME(NEW.time), callid = NULL;
END IF;
END ;
//
DELIMITER ;
【问题讨论】: