運用データのコピーを使用していくつかの移行スクリプトをテストしている間(スクリプトは開発データで正常に実行されます)、奇妙な状況が見つかりました。CONSTRAINTが変更されたため、DROP + ADDコマンドを発行しています。
ALTER TABLE A_DUP_CALLE
DROP CONSTRAINT A_DUP_CALLE_UK1;
ALTER TABLE A_DUP_CALLE
ADD CONSTRAINT A_DUP_CALLE_UK1 UNIQUE (
CONTROL_ID,
CALLE_AYTO_DUPL
)
ENABLE;
DROPコマンドは正常に機能しましたが、ADDコマンドは失敗しました。今、私は悪循環に陥っている。制約が存在しないため、制約を削除できません(最初の削除は期待どおりに機能しました)。
ORA-02443:制約を削除できません-存在しない制約
名前が既に存在するため、作成できません。
ORA-00955:名前は既存のオブジェクトですでに使用されています
私は型A_DUP_CALLE_UK1
SQL開発者に検索それがある...箱や!所有者、テーブル名、tablescape ...すべての試合:それは、同じ名前を持つ別のオブジェクトではありませんで、私の元の制約。テーブルは制約の詳細に表示されますが、制約はテーブルの詳細に表示されません。
私の質問:
- これの説明は何ですか?
- ライブサーバーで実際のアップグレードを行ったときに、それが起こらないようにするにはどうすればよいですか?
(サーバーは10g XEです。タグを作成するのに十分な評判がありません。)