1

重複の可能性:
Oracleでシーケンスをリセットするにはどうすればよいですか?

OracleDBにテーブルがあります。テーブルには常に膨大な数の行、たとえば数十万の行が含まれています。そのテーブルにIDを設定し、レコードが挿入されるたびにIDが自動的に生成されて挿入されるように、シーケンスとトリガーを使用しました。これで、Javaコードを介して既存の行をトラバースしているときに、そのテーブルのデータが切り捨てられ、新しい行が挿入される場合があります。その場合、テーブルが空のときにシーケンスを1から再開する必要があります。

シーケンスは次のようになります

CREATE SEQUENCE DUMMY_DETAILS_SEQ
  START WITH 356005
  MAXVALUE 999999999999999999999999999
  MINVALUE 1
  NOCYCLE
  CACHE 20
  NOORDER;
4

1 に答える 1

0

テーブルが空になり、シーケンスをリセットする必要がある場合は、削除してから再作成する必要があります。これを行うには、テーブル名、テーブル ID フィールド、およびシーケンス名を受け取るプロシージャを使用します。

また、現在の値を見つけ、increment by を負の値で使用してゼロに戻すこともできます。

alter sequence seq increment by -inc_value minvalue 0;
于 2012-10-05T16:57:07.340 に答える