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

Oracleでシーケンスをリセットするにはどうすればよいですか?

    Oracleの第一人者であるTomKyteからシーケンスを0にリセットするための適切な手順を次に示します。以下のリンクでも長所と短所についての素晴らしい議論があります。

    [email protected]> 
    create or replace
    procedure reset_seq( p_seq_name in varchar2 )
    is
        l_val number;
    begin
        execute immediate
        'select ' || p_seq_name || '.nextval from dual' INTO l_val;
    
        execute immediate
        'alter sequence ' || p_seq_name || ' increment by -' || l_val || 
                                                              ' minvalue 0';
    
        execute immediate
        'select ' || p_seq_name || '.nextval from dual' INTO l_val;
    
        execute immediate
        'alter sequence ' || p_seq_name || ' increment by 1 minvalue 0';
    end;
    /
    

    このページから:シーケンス値をリセットするための動的SQL
    別の良い議論もここにあります:シーケンスをリセットする方法は?



    1. Access2016でテンプレートからデータベースを作成する方法

    2. PostgreSQL:通貨に使用するデータ型はどれですか?

    3. AccessはODBCデータソースとどのように通信しますか?パート3

    4. SQLServerデータベーススナップショット-4