web-dev-qa-db-ja.com

テーブルのインポート後に最新のシーケンスを確保するためのベストプラクティス

Expdpとimpdpを使用して、いくつかのスキーマ間で毎週テーブルを移動します。一部のテーブルにはID列に関連付けられたシーケンスがあり、シーケンスがロード後に宛先テーブルで常に最新であることを確認したいと思います。

次の一連のイベントは、これを処理する安全で許容できる方法ですか?

  1. テーブルへのバックアップシーケンスプロパティ

  2. シーケンスの削除

  3. テーブルを読み込む(メタデータ付き)

  4. 最後にキャッシュされた値が最も大きいもの、バックアップシーケンステーブル、または新しくインポートされたシーケンスを見つけます。

  5. 適宜更新する

この方法に落とし穴はありますか?ある場合、試行され、テストされた方法はありますか?

2
Lewis Norton

シーケンスの場合、最善の方法は、dba | all | user_sequences.last_numberから現在の値をコピーすることです。シーケンスから現在の値をフェッチすることは安全ではありません。データベースの他のインスタンスでは、より高い値を持つことができます。また、アプリが注文にシーケンスを使用していないことを確認してください....

2
ik_zelf