我将此触发器插入到我的SQL数据库及其创建成功。但当我插入一个数据评估号为0时,它给出了一个错误:
ORA-04098。此触发器是在用户将数据插入考勤表时 如果插入的数据为评估No = 0,则程序应发送该数据 信息到' evalAudit'表
CREATE OR REPLACE TRIGGER zeroEval
BEFORE INSERT OR UPDATE OF evaluation_No
ON Attendance
FOR EACH ROW
WHEN (NEW.evaluation_No = 0)
BEGIN
IF :NEW.evaluation_No = 0 THEN
INSERT INTO auditEval
SELECT stu.stud_Name, cou.course_Title, off.start_Date, off.instructor_ID, :NEW.evaluation_No
FROM Student stu, Offerings off, Course cou
WHERE stu.stud_ID = :NEW.stud_ID AND
off.offering_ID = :NEW.offering_ID AND
cou.course_ID = off.course_ID;
END IF;
END;
/
这是表创建的代码
CREATE TABLE auditEval
(
stud_Name VARCHAR2 (30) ,
course_Title VARCHAR2 (30),
start_Date DATE ,
instructor_Name VARCHAR2 (20),
evaluation_No VARCHAR2 (10)
);
这是用于将数据作为评估No = 0插入考勤的代码。
这是考勤表的代码。
CREATE TABLE Attendance
(
evaluation_NO VARCHAR2 (10) ,
evaluation_Type VARCHAR2 (10) ,
stud_ID VARCHAR2 (10) NOT NULL,
offering_ID VARCHAR2 (10) NOT NULL
);