【发布时间】:2015-07-26 14:37:20
【问题描述】:
我正在尝试在插入事件之后创建触发器;这是触发器的定义:
BEGIN
DECLARE stud INT(11) DEFAULT 0;
DECLARE cd INT(11) DEFAULT 0;
DECLARE sw CURSOR FOR
(SELECT CodiceStudente FROM Listastudenticorsi WHERE CodiceCorso IN
(SELECT CodiceCorso FROM Listanews WHERE CodiceNews IN
(SELECT MAX(Codice) FROM News)));
DECLARE cod CURSOR FOR
(SELECT CodiceDocente FROM Listanews WHERE CodiceNews IN
(SELECT MAX(Codice) FROM News));
OPEN sw;
OPEN cod;
get_loop: LOOP
FETCH sw INTO stud;
FETCH cod INTO cd;
INSERT INTO Inbox(Mittente, Destinatario, Oggetto, Contenuto, Data) VALUES (cd, stud, "Nuova news", "", CURDATE());
END LOOP get_loop;
END
由于某些原因,MySQL 不允许我创建它:它说我必须在第 17 行检查“LOOP;END”附近的语法,但据我所知,那里的语法是正确的......我不明白出了什么问题,即使我将循环名称放在结束循环之后,也会出现错误。
我不确定错误是否可能在 INSERT 指令中:我不确定变量 @cod 的使用;它始终是一个独特的价值,但我不确定是否是导致问题的原因。如果是这样,我该如何更改该指令以获得相同的结果?
【问题讨论】: