2

現在、あるテーブルに文字列値がありますが、別のテーブルを参照するように変更したいと考えています。たとえば、現在私は持っています:

| Table: Animal       | 
-----------------------
| Name      | Class   |
|-----------|---------|
| Horse     | Mammal  |
| Crocodile | Reptile |

そして、これらが新しい「AnimalClass」テーブルを参照するようにして、次のようにします。

| Table: Animal       | 
-----------------------
| Name      | ClassId |
|-----------|---------|
| Horse     |    3    |
| Crocodile |    14   |

新しいテーブルを作成し、ClassId を問題なく設定しました。

残念ながら、新しい Id と AnimalClass テーブルの間に外部キー制約を追加しようとすると、次のエラーが発生します。

SQL Error: ORA-55610: Invalid DDL statement on history-tracked table

「元に戻す」が無効になるため、これは理にかなっています。

制約を追加できるように、履歴データを新しいデータに合わせて移行する方法はありますか?

4

1 に答える 1

2

どのバージョンの Oracle を使用していますか (クライアントとサーバー)? このスレッドによると、古いクライアントの使用には問題があります( http://download.oracle.com/docs/cd/E11882_01/appdev.112/e17125/adfns_flashback.htm#BJFFDCEHで推奨)

于 2010-11-15T04:30:32.843 に答える