1
データベースのトリガーを書き込もうとしていますが、少し失われてしまっています。これは私がトリガしたいものです:出荷が変更されたとき(新しい商品が出荷されたとき)、在庫を別の関係に変更して1を差し引いて、2つの関係相関する。DBMS:関数にスタック
アイデア?前もって感謝します!
データベースのトリガーを書き込もうとしていますが、少し失われてしまっています。これは私がトリガしたいものです:出荷が変更されたとき(新しい商品が出荷されたとき)、在庫を別の関係に変更して1を差し引いて、2つの関係相関する。DBMS:関数にスタック
アイデア?前もって感謝します!
old
およびnew
の項目は、shipment
の表を参照してください。ストックフィールドはstock
テーブルにあるため、明示的に更新する必要があります。同様に、カウントを取得して有効性を評価したいと思うでしょう。
CREATE FUNCTION decstock() RETURNS trigger as $pname$
qty integer;
BEGIN
--Get the current count
SELECT stk.stock
INTO qty
FROM stock stk
WHERE stk.isbn=old.isbn;
--Validate count
IF (qty = 0) then
raise exception 'There is no stock to ship';
ELSE
--Update valid stock
UPDATE stock stk
SET stk.stock = stk.stock - 1
WHERE stk.isbn = old.isbn;
END IF;
RETURN NEW;
END;
$pname$ LANGUAGE plpgsql;
私は普通のことに気がつくのは、おそらくこれは後に挿入するのではなく、前に挿入することです。しかし、私はもっと多くの情報が私たちのために必要であると言いました あなたは何が起こっているのかの例を提示し、次にあなたが何をしたいのかの例を提供することができます。 – ttallierchio