私は何百万と何百万もの行を持つ巨大なテーブルを持っています。ランダムなsys_guid()を使用して重複行とヌル行を更新し、主キーを追加します
GUID RAW(16バイト)の列があります。何らかの理由でこのテーブルにプライマリキー制約がありませんでした。コードのバグにより、重複がGUID列に挿入されていました(一部のヌル値も)
私がしたいのは
です- 更新GUIDは(SYS_GUIDを使用して()可能性が高い)ランダムに生成GUIDを持つNULLであるすべての行
- 更新GUIDが
- ランダム生成されたGUIDがテーブルに主キーを追加して重複しているすべての行、GUID列を使用します。
GUID値は保持する必要はなく、すべてが一意である必要があります。しかし、問題のテーブルには約3億レコードがありますので、私はそれを行う方法を探しています。それはあまりにも多くのダウンタイムを招かないでしょう。
おかげ
複製物とは何ですか?私たちはどのレコードが「オリジナル」なのかを知っていて、それを置き換えないようにする必要があります。テーブル構造を含めてください。 –
重複する行はなく、GUID値のみが複製されます。したがって、全く異なるレコードの中には同じGUIDがあります。 – bbedward
3つのGUIDが同じです。どれを変更するのか、どの3つを変更するべきか、どのようにしてわかりますか?あなたはテーブル構造を投稿できますか? –