我有两个用于存储呼叫详细信息的表。一个表(Call_Detail)存储针对每个输入的呼叫的标头详细信息,第二个(Call_History)存储针对该呼叫的每个评论。因此,单个调用只会在Call_Detail表中显示ONCE,但可能会在Call_History表中多次出现。
我目前运行查询以针对一组调用返回最新评论。所以,我从Call_Detail中返回标题详细信息,然后对Call_History进行交叉引用,以找到最新的'评论(感谢一些外界的帮助)。但是,在针对大量调用运行时,此查询可能非常耗时。
因此,我想要优化我的查询,我想设置一个记录这些细节的触发器。 我想要将任何INSERT命令捕获到Call_History表中,并根据相关的呼叫ID将注释和日期/时间记录到Call_Detail表中。
到目前为止,我有以下内容,但出于某种原因它并不像我的语法:
DELIMITER $$
CREATE TRIGGER Last_Call_Update
AFTER INSERT ON call_history
FOR EACH ROW
BEGIN
UPDATE call_detail
SET last_updated = NEW.updated_at, last_commment = NEW.body
WHERE id = NEW.ticket_id
END $$
DELIMITER ;
答案 0 :(得分:1)
在UPDATE语句后添加分号
DELIMITER $$
CREATE TRIGGER Last_Call_Update
AFTER INSERT ON call_history
FOR EACH ROW
BEGIN
UPDATE call_detail
SET last_updated = NEW.updated_at, last_commment = NEW.body
WHERE id = NEW.ticket_id;
END $$
DELIMITER ;