Php 在表1上插入后触发,在表2中插入表1中的where条件列

Php 在表1上插入后触发,在表2中插入表1中的where条件列,php,mysql,Php,Mysql,我的扳机根本没用 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,

我的扳机根本没用

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是“我的员工”表中的一列。

您的查询错误。MySQL INSERT语法不支持WHERE子句,因此当前的查询将失败


您不能将
WHERE
条件与
INSERT
查询一起使用。如果使用的是
WHERE
条件,则表示表中已有该行。因此,您应该使用
UPDATE
query而不是
INSERT

您可以使用以下命令向触发器添加条件逻辑:

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;

建议更新。这里(我见过)真的不知道/不推荐