Phpmyadmin不接受MySQL触发器

Phpmyadmin不接受MySQL触发器,mysql,triggers,phpmyadmin,Mysql,Triggers,Phpmyadmin,我试图使用Phpmyadmin创建触发器,但我的触发器一直被拒绝。 假设有以下表格: 新闻代码等。 学生代码等。 教师守则等。 课程代码等。 新闻列表新闻代码,教师代码,课程代码 学生名单学生代码,课程代码 等等,但这些是我在这个触发器中使用的 代码如下: DELIMITER // CREATE TRIGGER newNews AFTER INSERT ON News FOR EACH ROW BEGIN SET @news = (SELECT MAX(Code) FROM Ne

我试图使用Phpmyadmin创建触发器,但我的触发器一直被拒绝。 假设有以下表格: 新闻代码等。 学生代码等。 教师守则等。 课程代码等。 新闻列表新闻代码,教师代码,课程代码 学生名单学生代码,课程代码 等等,但这些是我在这个触发器中使用的

代码如下:

DELIMITER //

CREATE TRIGGER newNews
AFTER INSERT
   ON News FOR EACH ROW
   
BEGIN
SET @news = (SELECT MAX(Code) FROM News);
SET @course = (SELECT CourseCode FROM NewsList WHERE NewsCode=@news);
SET @cod = (SELECT TeacherCode FROM NewsList WHERE NewsCode=@news);
SET @studs = (SELECT StudentCode FROM StudsCoursesList WHERE Course=@course);
SET @i = 0;
WHILE @i < COUNT(@studs)
{
    INSERT INTO Inbox(Sender, Receiver, Object, Content, Date) VALUES (@cod, @i, @studs[i], "", CURDATE());
    i++;
}
END; //

DELIMITER ;
Phpmyadmin显示此消息:

1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用near的正确语法{ 在第12行插入InboxSender、Receiver、Object、Content、Date值


我不明白问题出在哪里。在指出日期可能会有冲突之前,我只是将其翻译成英文,在我的语言中,我使用数据。

对不起,MySQL语法没有大括号,您的WHILE缺少了DO

将WHILE循环更改为


您的错误消息表明它与WHILE语句有关。您使用的是方括号,而这些括号在SQL中没有使用

尝试将其更改为以下内容:

WHILE @i < COUNT(@studs) DO INSERT ..... END WHILE

是不是应该在…做…结束的时候,而不是卷曲的括号?
WHILE @i < COUNT(@studs) DO INSERT ..... END WHILE