0

私はデータベースの知識がほとんどないので、この質問で暗闇の中で撮影していますが、RDBMS トリガーを定数と条件で分割することはできますか?たとえば、同じトリガーで複数の「WHEN」ステートメントを使用できますか? 私はこのトピックの調査を依頼されましたが、率直に言って、ここ以外でどこから始めればよいかさえわかりません。投稿する「実際の」コードはありません。データベースの経験が豊富なユーザーからの理論的な洞察を探しているだけです。洞察力を前もって感謝します。

サンプルコード:

 CREATE TRIGGER REORDER
 AFTER UPDATE OF ON_HAND, MAX_STOCKED ON PARTS
 REFERENCING NEW AS N
 FOR EACH ROW
 WHEN (N.ON_HAND < 0.10 * N.MAX_STOCKED)
 BEGIN ATOMIC
 WHEN (N.ON_BCK_ORDR < N.CUST_ORDERED)
 VALUES(ISSUE_SHIP_REQUEST(N.MAX_STOCKED - N.ON_HAND, N.PARTNO));
 END

;

4

2 に答える 2

0

あなたが何を求めているのかわからない。トリガーの作成構文を知っておく必要があると思います。Oracle、MSSQL、MySQL、PostgreSQL データベースの「トリガーの作成」構文をグーグルで検索してみてください。

于 2012-08-16T19:26:16.593 に答える
0

以下に示すように、CASE ステートメント内で使用する場合、トリガーには複数の「WHEN」述語を含めることができます。

CREATE TRIGGER trg
BEFORE UPDATE OF dept_salary
ON employee_wages

BEGIN
   CASE
      WHEN INSERTING THEN
         DBMS_OUTPUT.PUT_LINE('Inserting');
      WHEN UPDATING ('salary') THEN
         DBMS_OUTPUT.PUT_LINE('UPDATING SALARY');
      WHEN DELETING THEN
         DBMS_OUTPUT.PUT_LINE('DELETING');
   ENDCASE
END
于 2012-08-21T13:40:03.040 に答える