0

これが可能かどうかはわかりません。ここでシーケンスを誤解している可能性があります...

Oracle のテーブルにデータを追加する SQL スクリプトがあります。各テーブルには、シーケンスを介して生成される主キーがあります。

現在電話中です

MY_SEQ.NEXTVAL

次のシーケンス値を取得します。

ここで、シーケンスを介して追加されなかったいくつかの行がDBに追加されたという問題が以前に発生しました。ID は、SQL スクリプトを介して手動で追加されました。これは、私の

MY_SEQ.NEXTVAL

主キーとしてすでに使用されているシーケンス番号を生成したため、実行に失敗しました。

Oracle のシーケンスと現在データベースにある ID を調整する方法はありますか? 現在、最初に確認する必要がありますが、これは理想的ではありません。すべてのテーブルをシーケンスで使用したい。既存の ID を考慮するシーケンスを取得できますか?

何か案は?これは可能ですか?

ありがとう

4

1 に答える 1

2

シーケンスを変更して、テーブルの最大 ID よりも高い nextval を持つことができます。

select max(id) from your_table;

alter sequence my_seq increament by <the amount to go beyond your max ID>;
于 2013-03-11T10:07:05.280 に答える