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

レコードを含む既存のテーブルにシーケンス列を追加する方法

    列を追加する必要があります

    ALTER TABLE userlog
      ADD( user_id number );
    

    シーケンスを作成

    CREATE SEQUENCE user_id_seq
      START WITH 1
      INCREMENT BY 1
      CACHE 20;
    

    テーブルのデータを更新します

    UPDATE userlog
       SET user_id = user_id_seq.nextval
    

    user_id が必要だと仮定すると 主キーになるには、主キー制約を追加します

    ALTER TABLE userlog
      ADD CONSTRAINT pk_user_id PRIMARY KEY( user_id );
    

    シーケンスを使用して user_id を自動的に追加する場合 INSERT を実行したとき (他のオプションは、具体的に user_id_seq.nextval を参照することです INSERT で ステートメント、トリガーも必要になります

    CREATE OR REPLACE TRIGGER trg_userlog_user_id
      BEFORE INSERT ON userlog
      FOR EACH ROW
    BEGIN
      :new.user_id := user_id_seq.nextval;
    END;
    


    1. TransactionScopeとOracleの問題

    2. jspはデータベースからランダムな量の行を表示します

    3. Androidデバイス用の安全なデータベースを実装するためのベストプラクティス

    4. phpからネストされたストアドプロシージャを呼び出す