mysql的触发器if语句语法的问题。
表的信息AttendIDint4否考勤编号EmployeeIDint4否员工编号BreachTimedatetime8可到达时间RecorderIDint4可记录者编号T...
表的信息AttendID int 4 否 考勤编号
EmployeeID int 4 否 员工编号
BreachTime datetime 8 可 到达时间
RecorderID int 4 可 记录者编号
Type nchar 4 否 考勤类型
AskReview bit 可 请求重新审核
Date Datetime 8 否 日期
约束表 tblAttendance 中的 RecorderID 不可与 EmployeeID 相同;Type 字段只能取“缺勤”、“迟到”、“早退”。AskReview字段默认值为0,即未请求重新审核
我的代码却一直报错
DELIMITER $$
CREATE TRIGGER TriggerAttendance BEFORE INSERT
ON tblAttendance FOR EACH ROW
BEGIN
IF (NEW.RecorderID=NEW.EmployeeID) THEN
UPDATE tblAttendance SET RecorderID=0;
IF (NEW.Type!=('缺勤' or '迟到' or '早退')) THEN
UPDATE tblAttendance SET RecorderID=0;
IF (NEW.AskReview!='0') THEN
UPDATE tblAttendance SET RecorderID=0;
ELSE
INSERT INTO tblAttendance
VALUES (AttendID=NEW.AttendID,EmployeeID=NEW.EmployeeID,BreachTime=NEW.BreachTime,
RecorderID=NEW.RecorderID,Type=NEW.Type,AskReview=NEW.AskReview,Date=NEW.Date);
END IF;
END $$; 展开
EmployeeID int 4 否 员工编号
BreachTime datetime 8 可 到达时间
RecorderID int 4 可 记录者编号
Type nchar 4 否 考勤类型
AskReview bit 可 请求重新审核
Date Datetime 8 否 日期
约束表 tblAttendance 中的 RecorderID 不可与 EmployeeID 相同;Type 字段只能取“缺勤”、“迟到”、“早退”。AskReview字段默认值为0,即未请求重新审核
我的代码却一直报错
DELIMITER $$
CREATE TRIGGER TriggerAttendance BEFORE INSERT
ON tblAttendance FOR EACH ROW
BEGIN
IF (NEW.RecorderID=NEW.EmployeeID) THEN
UPDATE tblAttendance SET RecorderID=0;
IF (NEW.Type!=('缺勤' or '迟到' or '早退')) THEN
UPDATE tblAttendance SET RecorderID=0;
IF (NEW.AskReview!='0') THEN
UPDATE tblAttendance SET RecorderID=0;
ELSE
INSERT INTO tblAttendance
VALUES (AttendID=NEW.AttendID,EmployeeID=NEW.EmployeeID,BreachTime=NEW.BreachTime,
RecorderID=NEW.RecorderID,Type=NEW.Type,AskReview=NEW.AskReview,Date=NEW.Date);
END IF;
END $$; 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询