CREATE TRIGGER leave_trigger
AFTER INSERT ON leaveapplication
FOR EACH ROW
IF employeemaster.empcode='".$empcode."' THEN
UPDATE employeemaster SET '".$leave_type=$leave_type."'-$numberofleave //I am facing problem here
END IF;
请帮助我在语法上进行纠正GIVEN $leave_type
为varchar
而$numberofleave
为integer
。
答案 0 :(得分:1)
您需要将字段名称保存在其他var
中UPDATE employeemaster SET '".$fieldName."=".$leave_type."'-$numberofleave
答案 1 :(得分:0)
我对你要做的事感到有些困惑。您是否尝试创建一个自动执行以下查询的触发器?
UPDATE
employeemaster
SET leave_type=leave_type-".$numberofleave."
where empcode='".$empcode."'
然后我想你想写这个触发器:
CREATE TRIGGER leave_trigger
AFTER INSERT ON leaveapplication
FOR EACH ROW
UPDATE employeemaster SET leave_type=leave_type-NEW.numberofleave where empCode=NEW.empCode
END;
在触发器中,您不希望使用PHP中的任何变量和特定信息。您希望将数据插入一个表(leaveApplication),然后让触发器使用该表中的数据来更新 employeemaster 。如果您对触发器中的数据进行硬编码,则需要为 employeemaster 中的每一行数据创建一个触发器,否则触发器将无法按预期工作。