Mysql 仅当学生的总学分小于30分时,才创建一个触发器,在studies(rollno,code)表中输入值

Mysql 仅当学生的总学分小于30分时,才创建一个触发器,在studies(rollno,code)表中输入值,mysql,triggers,Mysql,Triggers,我得到一个错误:#1064-您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第5行“”附近要使用的正确语法 CREATE TRIGGER db BEFORE INSERT ON studies FOR EACH ROW BEGIN IF((select CAST(SUM(credits) as UNSIGNED) from ((SELECT credits from subject WHERE subject.code = NEW.code)

我得到一个错误:#1064-您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第5行“”附近要使用的正确语法

    CREATE TRIGGER db BEFORE INSERT ON studies
    FOR EACH ROW
    BEGIN
    IF((select CAST(SUM(credits) as UNSIGNED) from ((SELECT credits from subject WHERE subject.code = NEW.code) union all (SELECT credits from subject,(SELECT code from studies where studies.rollno = NEW.rollno) as t1 WHERE subject.code = t1.code)) as t2) > 30) THEN
    set NEW.rollno = NULL;
    ENDIF;
    END

试试这个-set NEW.rollno=NULL,试试这个-set NEW.rollno=NULL,