以下のようなテーブルが存在したとする。
テーブル名 : [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 件のコメント:
コメントを投稿