2017-06-21 19 views
0

私は2つのテーブルを持っている状況を持っていると思います。テーブル1は給与カラムの顧客テーブル、テーブル2は税テーブルです。 私は税額で税テーブルにレコードを挿入すると、私は給与を引いて、顧客テーブル(給与カラム)が正味給与で更新されるようにしたいと思います。私はオラクルは、別のテーブルに挿入したときに更新をトリガーする

答えて

1

まずコンパイルエラーを取得しています

CREATE OR REPLACE TRIGGER trig_update 
AFTER INSERT ON tax 
FOR EACH ROW 
DECLARE 
net_sal; 
BEGIN 
net_sal := :customers.salary - :tax.amount; 
UPDATE customers (salary) VALUES (net_sal) 
WHERE (tax.cust_id == customers.id); 
END; 

、SQLには "==" 演算子はありません。 "="のみ。

第2に、更新ステートメントにSET句が必要です。それはする必要があります

UPDATE customers 
SET salary = net_sal 
WHERE tax.cust_id = customers.id; 

第3、これは悪いテーブルデザインです。 salary列を更新する代わりに、 "net_salary"という新しい列を作成し、代わりにその列を更新します。税レコードを削除して新しいレコードを挿入する必要がある場合はどうなりますか?あなたの給与額はそれから得られた古い税金を持っていて、間違って低いです。

関連する問題