0
私は2つのテーブルを持っている状況を持っていると思います。テーブル1は給与カラムの顧客テーブル、テーブル2は税テーブルです。 私は税額で税テーブルにレコードを挿入すると、私は給与を引いて、顧客テーブル(給与カラム)が正味給与で更新されるようにしたいと思います。私はオラクルは、別のテーブルに挿入したときに更新をトリガーする
私は2つのテーブルを持っている状況を持っていると思います。テーブル1は給与カラムの顧客テーブル、テーブル2は税テーブルです。 私は税額で税テーブルにレコードを挿入すると、私は給与を引いて、顧客テーブル(給与カラム)が正味給与で更新されるようにしたいと思います。私はオラクルは、別のテーブルに挿入したときに更新をトリガーする
まずコンパイルエラーを取得しています
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"という新しい列を作成し、代わりにその列を更新します。税レコードを削除して新しいレコードを挿入する必要がある場合はどうなりますか?あなたの給与額はそれから得られた古い税金を持っていて、間違って低いです。