gpt4 book ai didi

MySQL 触发器无法正常工作

转载 作者:行者123 更新时间:2023-11-29 02:20:38 26 4
gpt4 key购买 nike

我在尝试使用 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”,意思大概是“学生和类(class)列表”。

我所做的是:当插入新闻时,我得到它所指的类(class)、它的对象、日期和新闻的提交者,我找到(使用选择语句)参加该类(class)的学生消息是引用,然后使用插入语句向他们每个人发送邮件。

最佳答案

如我所见,您没有针对游标的继续处理程序。它将允许光标实际执行某些操作。

从 mysql 游标 手册页,参见 this .

这也是一个link到我写的一个存储过程,显示一个继续处理程序,其中有一个标志指定循环完成。

关于MySQL 触发器无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32424638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com