InterBase クイック スタート:Part V - ジェネレータやトリガを使った応用演習

提供: InterBase

InterBase クイック スタート:Part V - 応用トピック へ戻る


トリガに関するこのセクションの残りの部分では、別のジェネレータ、および、さらに 3 つのトリガを作成していきます。 このセクションを完了させるには、2 つの方法があります:

  • 手順に従い、残りの項目を手動で入力します。
  • TRIGGERS.SQL スクリプトを使用します。

スクリプトを使用する

スクリプトを使用する方法を選択した場合には、次を行ってください:

  1. TRIGGERS.SQL スクリプトを読み込みます。
  2. クエリを実行します。
  3. 正常に TRIGGER.SQL スクリプトを実行できたら、データベースをバックアップすることをお勧めします。
  4. ページ「ストアド プロシージャ」に進みます。

残りの項目を手動で入力する

トリガやストアド プロシージャを正常に作成できるたびに、作業をコミットすることをお勧めします。

Image 025.jpg ジェネレータやトリガを使用した応用演習

  1. 次に作成するトリガは、cust_no_gen ジェネレータを使用します。
    CREATE generator cust_no_gen
    
    SET generator cust_no_gen TO 1015
    
  2. ここで、CREATE TRIGGER 文を実行して、set_cust_no トリガを作成します:
    CREATE TRIGGER set_cust_no FOR customer
    BEFORE INSERT AS
    BEGIN
        NEW.cust_no = gen_id
           (
                cust_no_gen,
                1
           );
    END
    
  3. このトリガをテストするには、カスタマの最高値が 1015 であることをまず確認します。
    SELECT MAX(cust_no)
    FROM   customer
    
  4. その後、以下の行を挿入します:
    INSERT INTO customer
                (customer,
                 contact_first,
                 contact_last,
                 phone_no,
                 address_line1,
                 address_line2,
                 city,
                 state_province,
                 country,
                 postal_code,
                 on_hold)
    VALUES      ('Big Rig',
                 'Henry',
                 'Erlig',
                 '701-555-1212',
                 '100 Big Rig Way',
                 NULL,
                 'Atlanta',
                 'GA',
                 'USA',
                 '70008',
                 NULL)
    
  5. 新しい顧客番号が 1016 であることを確認するには、次の文を入力します:
    SELECT cust_no
    FROM   customer
    WHERE  customer = 'Big Rig'
    

次は:

変更レコードを保持するトリガを作成する