2012-09-13 35 views
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_typevarchar$numberofleaveintegerVARCHAR和INT语法

回答

1

你需要在不同的变种救场名称

UPDATE employeemaster SET '".$fieldName."=".$leave_type."'-$numberofleave 
+0

这工作表示感谢! :) – Aragorn

+0

虽然这个硬编码的行值不会进入表格触发吗? – Fluffeh

+0

@Aragorn不要原谅标记问题已解决;-) – Maks3w

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

+0

@Aragorn你可以给这个一抡?我在猜测某些列名称,所以你可能想要适应你的实际名称。 – Fluffeh