0
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_typeisvarchar$numberofleaveis integer

4

2 回答 2

1

您需要将字段名称保存在不同的变量中

UPDATE employeemaster SET '".$fieldName."=".$leave_type."'-$numberofleave
于 2012-09-13T07:59:56.837 回答
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中的每一行数据创建一个触发器,否则触发器将无法按预期工作。

于 2012-09-13T07:49:21.327 回答