我的触发器根本不起作用。
DELIMITER $$
CREATE TRIGGER leave_credit_nt
AFTER INSERT ON employees
FOR EACH ROW
BEGIN
INSERT INTO nonteaching_leavecredit (IdNum, Date_Hired, Emp_Stat, Date_Leave_Ac, Vac_Leave, Sick_Leave)
VALUES (new.IdNum, new.Date_Hired, new.Emp_Stat, new.Date_Hired + INTERVAL 1 YEAR, 0, 0)
WHERE employees.Emp_Type = 'NON-TEACHING';
END $$
DELIMITER
我想触发器会将值插入到我的第二个表中,只有那些带有employees.emp_type ='NON-TEACHING'的值。有人可以帮助我让这个触发器工作吗?
emp_type是我的员工中的一列。
答案 0 :(得分:3)
您的INSERT
查询错误。 MySQL INSERT语法不支持WHERE子句,因此您的查询将失败。
您无法在WHERE
查询中使用INSERT
条件。如果您使用WHERE
条件,则表示您已在表中拥有该行。因此,您应该使用UPDATE
查询而不是INSERT
。
答案 1 :(得分:0)
您可以使用以下方法为触发器添加条件逻辑:
if new.Emp_Type = 'NON-TEACHING' then
INSERT INTO nonteaching_leavecredit (IdNum, Date_Hired, Emp_Stat, Date_Leave_Ac, Vac_Leave, Sick_Leave)
VALUES (new.IdNum, new.Date_Hired, new.Emp_Stat, new.Date_Hired + INTERVAL 1 YEAR, 0, 0);
end if;