在插入触发器之前使用mysql时出错

在插入触发器之前使用mysql时出错,mysql,triggers,Mysql,Triggers,我正在尝试编写一个mysql触发器,它只允许2列中的1列包含一个值。该表如下所示: DELIMITER $$ CREATE TRIGGER test_before_insert BEFORE INSERT ON tbl_lesson FOR EACH ROW BEGIN declare counter int DEFAULT 0; IF studentID IS NULL AND classID IS NOT NULL THEN set counter := co

我正在尝试编写一个mysql触发器,它只允许2列中的1列包含一个值。该表如下所示:

DELIMITER $$
CREATE TRIGGER test_before_insert BEFORE INSERT ON tbl_lesson
FOR EACH ROW
BEGIN
    declare counter int DEFAULT 0;
    IF studentID IS NULL AND classID IS NOT NULL THEN
        set counter := counter + 1;
    END IF;
    IF studentID IS NOT NULL AND classID IS NULL THEN
        set counter := counter + 1;
    END IF;
    IF counter != 1 THEN
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEST = "Only studentID or classID must be null";
    END IF;
END$$
DELIMITER ;
tbl\u课程

lessonID int NOT NULL AUTO_INCREMENT ==> PRIMARY KEY
studentID int ==> FOREIGN KEY
classID int ==> FOREIGN KEY
我的触发器如下所示:

DELIMITER $$
CREATE TRIGGER test_before_insert BEFORE INSERT ON tbl_lesson
FOR EACH ROW
BEGIN
    declare counter int DEFAULT 0;
    IF studentID IS NULL AND classID IS NOT NULL THEN
        set counter := counter + 1;
    END IF;
    IF studentID IS NOT NULL AND classID IS NULL THEN
        set counter := counter + 1;
    END IF;
    IF counter != 1 THEN
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEST = "Only studentID or classID must be null";
    END IF;
END$$
DELIMITER ;
当前,每当我尝试向该表输入任何内容时(无论是否有效),都会返回此错误

ERROR 1054 (42S22): Unknown column 'studentID' in 'field list'

非常感谢您的帮助。

NEW.studentID
NEW.classID
谢谢!!事后看来,这似乎是一个相当愚蠢的错误……一些最令人沮丧的错误可能是。