触发:
1
该场景是假日将被删除的那一天的任何出席。在announcement_tbl中,它包含announcement_date,announcement_description,announcement_date。如果公告日期与出勤表上的日期相同,前提是该说明是假日,则将取消/删除出勤表上的出勤行。但是,当我在ATTENDANCE_tbl上插入数据时,会发生错误。 你可以帮我解决问题吗?
这是错误:
“无法在存储的函数/触发器中更新表'attendance_tbl',因为它已被调用此存储函数/触发器的语句使用。”“
答案 0 :(得分:0)
您无需删除所有出席的行,只需要插入的行。为此,您在插入时出错:
DELIMITER $$
USE `smartclass_dbv2`$$
CREATE TRIGGER `delete_attendance_on_holiday` BEFORE INSERT ON `attendance_tbl`
FOR EACH ROW
BEGIN
IF EXISTS (SELECT 1
FROM announcement_tbl a
WHERE a.announcement_description = 'holiday' AND
a.announcement_date = new.date
) THEN
SIGNAL SQLSTATE '45000', message_text = 'Insert failed; date on holiday';
END IF;
END$$
您可能需要update
的类似触发器。