【发布时间】:2015-12-02 04:21:02
【问题描述】:
我在尝试使用 MySQL 触发器时遇到一个奇怪的错误。 我正在使用 XAMPP 并使用 PhpMyAdmin 创建触发器。
触发器的代码是:
BEGIN
DECLARE stud INT(11) DEFAULT 0;
DECLARE sw CURSOR FOR
(SELECT CodiceStudente FROM Listastudenticorsi WHERE CodiceCorso = NEW.CodiceCorso);
OPEN sw;
get_loop: LOOP
FETCH sw INTO stud;
INSERT INTO inbox(Mittente, Destinatario, Oggetto, Contenuto, Data) VALUES (NEW.CodiceDocente, stud, "Nuova news inserita", NEW.Oggetto, NEW.Data);
END LOOP get_loop;
END
并且在插入到表“新闻”之前被调用。
发生的情况是语法是正确的,但是当我尝试运行它时触发事件,它显示“#1329 - 无数据 - 获取、选择或处理零行”。
我试图找出真正的问题是什么,似乎是“FETCH sw INTO stud”这行;我尝试了很多次,SELECT 语句确实返回了正确的值,所以 'sw' 不能为空......我被困在这一点上。
有 3 个表对此触发器感兴趣。 “新闻”是触发事件的消息;它有一些使用关键字“NEW”调用的列。第二个是收件箱;在触发器执行其操作后,我将在该表中插入一些值。最后是“Listastudenticorsi”,大致意思是“学生和课程列表”。
我所做的是:当插入新闻时,我得到它所指的课程、它的对象、它的日期和新闻的提交者,我发现(使用 select 语句)参加该课程的学生新闻是指,然后使用插入语句向他们每个人发送邮件。
【问题讨论】:
标签: mysql triggers phpmyadmin xampp