我的扳机根本不起作用。
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 =‘非示教’的值插入到我的第二个表中。有没有人能帮我修一下扳机?
emp_type是我的表employees中的一列。
发布于 2015-10-13 11:54:31
您的INSERT查询错误。MySQL INSERT语法不支持WHERE子句,因此您的查询将失败。
不能对INSERT查询使用WHERE条件。如果您使用的是WHERE条件,这意味着您在表中已经有该行。因此,您应该使用UPDATE查询而不是INSERT。
发布于 2015-10-13 12:37:53
您可以使用以下命令将条件逻辑添加到触发器:
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;https://stackoverflow.com/questions/33093816
复制相似问题