以下のようなテーブルが存在したとする。
テーブル名 : [MST_Magazine]
フィールド
| 項目名 | 型 | 備考 |
|---|---|---|
| ID | 数値 | PK 連番でデータを格納 |
| Publisher_ID | 数値 | |
| Name | 文字列 |
このようなテーブルではIDはシーケンスでの採番となる。
しかし、OracleではSQLServerのように、型として自動採番の型が存在しない。
そこで、トリガを用いて自動採番を行う。
CREATE OR REPLACE TRIGGER TRG_MST_Magazine_ID
BEFORE Insert
ON MST_Magazine
FOR EACH ROW
BEGIN
IF :NEW.ID IS NULL THEN
SELECT SEQ_Magazine_ID.NEXTVAL INTO :NEW.ID FROM DUAL;
END IF;
END;
上記のトリガは、MST_MagazineテーブルへのInsert時に起動し、
InsertされたMST_Magazine.ID項目がNULLの場合、SEQ_Magazine_ID.Nextvalの値を使用する。
これにより、IDを指定せずMST_MagazineテーブルへのInsertを行った場合は自動で数値が採番される。
0 件のコメント:
コメントを投稿