Bazı geçiş komut dosyalarını üretim verilerinin bir kopyasıyla test ederken (komut dosyaları geliştirme verileriyle iyi çalışır) ilginç bir durum buldum. Bir CONSTRAINT değişti, bu yüzden DROP + ADD komutları veriyorum:
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 komutu iyi çalıştı ancak ADD komutu başarısız oldu. Şimdi bir kısır döngüye girdim. Ben (çünkü ilk damla beklendiği gibi çalıştı) kısıtlama bırakamıyorum:
ORA-02443: Kısıtlama bırakılamıyor - var olmayan kısıtlama
Ve adı zaten var çünkü oluşturamıyorum:
ORA-00955: isim zaten mevcut bir nesne tarafından kullanılıyor
A_DUP_CALLE_UK1
SQL Developer'ın Arama kutusuna yazıyorum ve ... işte orada! Sahip, tablo adı, tablescape ... her şey eşleşiyor: aynı ada sahip farklı bir nesne değil , orijinal kısıtlamam. Tablo, kısıtlama ayrıntılarında görünür, ancak kısıtlama tablonun ayrıntılarında görünmez.
Sorularım:
- Bunun açıklaması ne?
- Canlı sunucuda gerçek yükseltmeyi yaptığımda bunun olmamasını nasıl sağlayabilirim?
(Sunucu 10g XE, etiketi oluşturmak için yeterli itibarım yok.)