Oracleのトリガーで自動増加機能を実現する方法は?
自動インクリメント機能を実現するために、トリガー内でシーケンスを使用することで自動インクリメント効果を実現できます。以下はサンプルコードです:
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER my_trigger
BEFORE INSERT ON my_table
FOR EACH ROW
BEGIN
SELECT my_seq.NEXTVAL INTO :new.id FROM dual;
END;
/
コードの最初に、まずmy_seqというシーケンスを作成し、その後にmy_triggerというトリガーを作成しました。my_tableテーブルに新しいレコードを挿入する際、トリガーは自動的にid列にシーケンスmy_seqの次の値を割り当てることができます。これにより自動増加機能が実現されます。