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;

構文的に与えられたものを修正する$leave_typeのを手伝っvarcharてください。$numberofleaveinteger

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 の変数を詳細に使用したくありません。データを 1 つのテーブル (leaveApplication) に挿入し、トリガーでそのテーブルのデータを使用してemployeemasterを更新します。トリガー内のデータをハードコードする場合、 employeemaster内のデータのすべての行に対してトリガーを作成する必要があります。そうしないと、トリガーが期待どおりに機能しません。

于 2012-09-13T07:49:21.327 に答える