2017-11-21 16 views
1

従業員表はEmployee(eno、ename、salary)として定義されます。給与が更新されたときの旧給与と新給与の差を計算して出力するトリガー

給与が更新されたときの古い給与と新しい給与の差を計算して印刷するためのトリガを作成します。

次のトリガーを試しました。それは違いを計算するようです。それを印刷するには?

DELIMITER $$ 
CREATE TRIGGER t1 
AFTER UPDATE ON employee 
FOR EACH ROW 
BEGIN 
    DECLARE sal_diff DECIMAL(10,2); 
    IF eno = new.eno THEN 
     IF (new.salary < old.salary) THEN 
      SET sal_diff = old.salary - new.salary; 
     ELSE 
      SET sal_diff = new.salary - old.salary; 
     END IF; 
    END IF; 
END $$ 
DELIMITER ; 
+0

あなたの質問を編集して、あなたが得る構文エラーを追加し、私たちを助けること、あなたを助けてください。 –

+0

印刷はmysqlの動詞ではありません。 –

+1

printステートメントがなくても同じエラーが発生します。 – Mash

答えて

0

そのような何か:

DELIMITER $$ 
CREATE TRIGGER t1 
AFTER UPDATE ON employee 
FOR EACH ROW 
BEGIN 
    DECLARE sal_diff DECIMAL(10,2); 
    IF new.salary < old.salary THEN 
     set @sal_diff = old.salary - new.salary; 
    ELSE 
     set @sal_diff = new.salary - old.salary; 
    END IF; 
    -- Use @sal_diff where you want it; 
END $$ 
DELIMITER ; 
+0

動作しません。 エラー1415(0A000):トリガから結果セットを返すことはできません – Mash

+0

エラーが示すように、トリガでは選択/印刷がありません –

関連する問題