2012-09-13 62 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