在插入触发器之前使用mysql时出错
我正在尝试编写一个mysql触发器,它只允许2列中的1列包含一个值。该表如下所示:在插入触发器之前使用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
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
谢谢!!事后看来,这似乎是一个相当愚蠢的错误……一些最令人沮丧的错误可能是。