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

Oracle-既存のテーブルを変更して、列を自動インクリメントします

    テーブルを変更することはできません。 Oracleは、宣言型の自動インクリメント列をサポートしていません。シーケンスを作成できます

    CREATE SEQUENCE note_seq
      START WITH 800
      INCREMENT BY 1
      CACHE 100;
    

    次に、トリガーを作成できます

    CREATE OR REPLACE TRIGGER populate_note_id
      BEFORE INSERT ON note
      FOR EACH ROW
    BEGIN
      :new.note_id := note_seq.nextval;
    END;
    

    または、発信者がデフォルト以外のNOTE_IDを指定できるようにする場合

    CREATE OR REPLACE TRIGGER populate_note_id
      BEFORE INSERT ON note
      FOR EACH ROW
    BEGIN
      IF( :new.note_id is null )
      THEN 
        :new.note_id := note_seq.nextval;
      END IF;
    END;
    


    1. DoctrineとSymfony2を使用して多対多の関係を照会する

    2. mysqlの制限が崩壊し、データの相互作用が発生します

    3. MySQLのTIMEDIFF()とSUBTIME():違いは何ですか?

    4. PHP-ラジオボタンをクリックしたときにデータをMySQLに更新する方法