sql中的varchar和int语法

时间:2012-09-13 07:46:56

标签: php mysql

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_typevarchar$numberofleaveinteger

2 个答案:

答案 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 中的每一行数据创建一个触发器,否则触发器将无法按预期工作。