2016-10-15 8 views
0

私は従業員の現在の給与であるsalaryPaidの列と、baseSalaryの従業員の仕事で利用可能な最低給与のあるテーブルEmpを持つテーブルEmpSalaryを持っています。私は従業員が特定のパーセント範囲(その従業員の仕事のbaseSalary以上ではない)で支払われていることを確実にするために計算を行うEmpSalaryテーブルのトリガを書きたいと思います。

私は計算が紙の上に出てきましたが、私はEmpSalaryテーブルの上にトリガを書いているときEmpテーブルを参照するかどうかはわかりませんか?トリガーの作成時に別のテーブルの別の列を参照する方法はありますか?

CREATE TRIGGER Check_Salary BEFORE INSERT OR UPDATE ON EmpSalary FOR EACH ROW DECLARE v_salary; v_baseSalary; ... BEGIN v_salary := old.salaryPaid v_baseSalary := Emp.baseSalary ... END; /

任意の洞察力は素晴らしいことです!大きな試験のために勉強しようとしています。

答えて

0

トリガーでデータを選択しているテーブルがトリガーが定義されていない場合は、トリガーでSELECTを実行できます。この場合、EMPからデータを選択することができます。

CREATE OR REPLACE TRIGGER Check_Salary 
    BEFORE INSERT OR UPDATE ON EmpSalary 
    FOR EACH ROW 
DECLARE 
    v_salary  NUMBER; 
    v_baseSalary NUMBER; 
    ... 
BEGIN 
    v_salary := old.salaryPaid; 

    SELECT BASESALARY 
     INTO v_baseSalary 
     FROM EMP 
     WHERE EMP.some_key_column = :old.some_key_column; 

    ... 
END; 

最高の運があります。

+0

恐ろしい!先端に感謝します。 :) –

関連する問題