sql >> データベース >  >> RDS >> Oracle

Oracleデータベースの主キーの自動インクリメント

    Orbmanが言うように、それを行う標準的な方法はシーケンスを使用することです。ほとんどの人が行うことは、これを挿入トリガーと組み合わせることです。したがって、IDなしで行が挿入されると、トリガーが起動して、シーケンスからIDを入力します。

    CREATE SEQUENCE SEQ_ROLLINGSTOCK_ID START WITH 1 INCREMENT BY 1 NOCYCLE;
    
    CREATE OR REPLACE TRIGGER BI_ROLLINGSTOCK
    BEFORE INSERT ON ROLLINGSTOCK
    REFERENCING OLD AS OLD NEW AS NEW
    FOR EACH ROW
     WHEN (NEW.ID IS NULL)
    BEGIN
      select SEQ_ROLLINGSTOCK_ID.NEXTVAL
       INTO :NEW.ID from dual;
    END;
    

    これは、Oracleでトリガーを使用することが理にかなっている数少ないケースの1つです。



    1. ローカルの既存のタイプからdblink列定義リストを指定します

    2. SQL Server(T-SQL)でのTRANSLATE()関数のしくみ

    3. SQLテーブルで重複する値を見つける方法

    4. MySql-最初に文字列値で並べ替え