DB2 のセットアップ

この説明では、DB2 Universal Database を使用していることを前提とし、以下のタスクを順番に説明していきます。

以下のタスクはオプションです。

以下のステップを実行します。

  1. テキスト・エディターで新しい文書を開き、DBINPUT データベースを作成し BIND ユーティリティーを実行する以下のスクリプトをコピーしてその文書に貼り付け、ファイル名を dbinput.sql として、そのファイルを保存します。
  2. DB2 コマンド・ウィンドウで以下のコマンドを入力して、DB2 が開始されていることを確認します。
    db2start
  3. DB2 コマンド・ウィンドウで、dbinput.sql が入っているフォルダーにナビゲートして、以下のコマンドを入力します。
    db2 -vf dbinput.sql
    

次のステップ: 以下のいずれかのオプションを選択して、データベース表とトリガーを作成します。

データベース表とトリガーの手動作成

データベース表を作成してそれにアクセスする際には、以下の問題に注意してください。

データベース表とトリガーを作成します。

  1. テキスト・エディターで新規文書を開き、DBINPUT_CUSTOMER および DBINPUT_EVENTS 表を作成する以下のスクリプトをコピーして新規文書に貼り付け、そのファイルに dbinput_create_tables_db2.sql という名前を付けて保存します。
     
    CONNECT TO DBINPUT@
    
    DROP TABLE "DBINPUT_CUSTOMER"@
    CREATE TABLE "DBINPUT_CUSTOMER" (
    		"PKEY" VARCHAR(10) NOT NULL,
    		"FIRSTNAME" VARCHAR(20),
    		"LASTNAME" VARCHAR(20),
    		"CCODE" VARCHAR(10)
    	)
    	DATA CAPTURE NONE@
    
    DROP TABLE "DBINPUT_EVENTS"@
    CREATE TABLE "DBINPUT_EVENTS" (
    		"EVENT_ID" INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 NO CYCLE NO CACHE),
    		"OBJECT_KEY" VARCHAR(80) NOT NULL,
    		"OBJECT_VERB" VARCHAR(40) NOT NULL
    	)
    	DATA CAPTURE NONE@
    
    
    ALTER TABLE "DBINPUT_CUSTOMER" ADD CONSTRAINT "DBINPUTCUSTOMERPK" PRIMARY KEY
    	("PKEY")@
    
    ALTER TABLE "DBINPUT_EVENTS" ADD CONSTRAINT "DBINPUTEVENTPK" PRIMARY KEY
    	("EVENT_ID")@
    
    CREATE TRIGGER "DBIN_CUST_CREATE" 
    	AFTER INSERT ON "DBINPUT_CUSTOMER"
    	REFERENCING  NEW AS N
    	FOR EACH ROW
    
    INSERT INTO DBINPUT_EVENTS (OBJECT_KEY, OBJECT_VERB)
           VALUES (N.pkey, 'Create')@
    
    CREATE TRIGGER "DBIN_CUST_DELETE" 
    	AFTER DELETE ON "DBINPUT_CUSTOMER"
    	REFERENCING  OLD AS O
    	FOR EACH ROW
    
    INSERT INTO DBINPUT_EVENTS (OBJECT_KEY, OBJECT_VERB)
           VALUES (O.pkey, 'Delete')@
    
    CREATE TRIGGER "DBIN_CUST_UPDATE" 
    	AFTER UPDATE ON "DBINPUT_CUSTOMER"
    	REFERENCING  NEW AS N
    	FOR EACH ROW
    
    INSERT INTO DBINPUT_EVENTS (OBJECT_KEY, OBJECT_VERB)
           VALUES (N.pkey, 'Update')@
    
    TERMINATE@
            
  2. データベースが実行されて接続していることを確認します。
  3. コマンド・ウィンドウを開いてデータベースにアクセスし、dbinput_create_tables_db2.sql が含まれているフォルダーに移動し、以下のコマンドを入力します。
    db2 -td@ -vf dbinput_create_tables_db2.sql

    スクリプトの実行が終了するまで待ちます。 スクリプトを初めて実行する場合は、次のようなメッセージが 2 回表示されます。

    DB21034E コマンドが、有効なコマンド行プロセッサー・コマンドでないため、SQL ステートメントとして処理されました。
    SQL 処理中に、以下のコマンドが返されました。SQL0204N  "DB2ADMIN.DBINPUT_EVENTS" は未定義の名前です。SQLSTATE=42704
    
    メッセージは両方とも無視してください。 メッセージが表示される理由は、スクリプトは DBINPUT_CUSTOMER および DBINPUT_EVENTS という既存の表を新規表の作成前に除去しようとしますが、これまでスクリプトを実行したことがない場合は、スクリプトが既存の表を検出できないからです。

    スクリプトを実行するのが初めてではない場合は、トリガーのそれぞれで次のような警告が表示されることがあります。

    SQL0280W  ビュー、トリガー、またはマテリアライズ照会表「DB2ADMIN.DBIN_CUST_UPDATE」が、既存の作動不能なビュー、トリガー、またはマテリアライズ照会表を置換しました。
    SQLSTATE=01595
    
    これらのメッセージも無視できます。

「データベースのセットアップ」に戻る

サンプルのホームに戻る