扣除天数后如何创建mySQL触发器?

扣除天数后如何创建mySQL触发器?,mysql,triggers,Mysql,Triggers,我想创建一个触发器,在申请人申请休假类型(年假/产假/病假)后,它将从休假余额中扣除他们申请的天数。但是我想不出正确的代码。大概只有批准的假期才能进入表格?是的。只有已批准的假期才会进行更改。因此,您更新了假期信息,并希望假期余额对相同的假期id进行相应更改。但是看起来每一次休假都有可能有三种休假?那么基本上你可以同时改变多个假期?是吗?所以,当休假未经批准时,用户如何知道他们(可能)还有多少休假?是的。每个假期id将有3种假期,但男性员工只有2种,maternityleave上为空。大概只有批

我想创建一个触发器,在申请人申请休假类型(年假/产假/病假)后,它将从休假余额中扣除他们申请的天数。但是我想不出正确的代码。

大概只有批准的假期才能进入表格?是的。只有已批准的假期才会进行更改。因此,您更新了
假期信息
,并希望
假期余额
对相同的
假期id
进行相应更改。但是看起来每一次休假都有可能有三种休假?那么基本上你可以同时改变多个假期?是吗?所以,当休假未经批准时,用户如何知道他们(可能)还有多少休假?是的。每个假期id将有3种假期,但男性员工只有2种,maternityleave上为空。大概只有批准的假期才会进入表格?是的。只有已批准的假期才会进行更改。因此,您更新了
假期信息
,并希望
假期余额
对相同的
假期id
进行相应更改。但是看起来每一次休假都有可能有三种休假?那么基本上你可以同时改变多个假期?是吗?所以,当休假未经批准时,用户如何知道他们(可能)还有多少休假?是的。每个假期id将有3种假期,但男性员工只有2种,maternityleave上为空。
CREATE TABLE `leaveinformation`(
`leave_id` CHAR(4) NOT NULL,
`annualleave` INT(2) DEFAULT NULL,
`sickleave` INT(2) DEFAULT NULL,
`maternityleave` INT(3) DEFAULT NULL,

//table for trigger
CREATE TABLE Leave_Balance (
`leave_id` CHAR(4) NOT NULL,
`annualleave` INT(2) DEFAULT NULL,
`sickleave` INT(2) DEFAULT NULL,
`maternityleave` INT(3) DEFAULT NULL,
`day_applied` INT(2) DEFAULT NULL,
`leave_type` VARCHAR(15) NOT NULL,
);



//create trigger
DELIMITER $$
CREATE TRIGGER `After_Deduct_Day`
AFTER UPDATE ON LeaveInformation
FOR EACH ROW 
BEGIN
UPDATE ON Leave_Balance
Leave_ID = OLD.Leave_ID;
IF leave_type=AnnualLeave then
Set AnnualLeave = OLD.AnnualLeave - day_applied,
IF leave_type=SickLeave
Set SickLeave = OLD.SickLeave - day_applied,
ELSE
Set Maternity Leave = OLD.MaternityLeave - day_applied,



END$$
DELIMITER;