프로덕션 데이터 사본으로 일부 마이그레이션 스크립트를 테스트하는 동안 (스크립트는 개발 데이터에서 제대로 실행 됨) 흥미로운 상황을 발견했습니다. 제약 조건이 변경되어 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 Developer의 검색 상자에 입력 하면 ...입니다! 소유자, 테이블 이름, tablescape ... 모든 경기 : 그것은 같은 이름의 다른 개체가 아닙니다, 그것은 이다 내 원래 제약. 테이블이 제한 조건 세부 사항에 나타나지만 제한 조건이 테이블의 세부 사항에 나타나지 않습니다.
내 질문 :
- 이에 대한 설명은 무엇입니까?
- 라이브 서버에서 실제 업그레이드를 수행 할 때 발생하지 않도록하려면 어떻게해야합니까?
(서버는 10g XE이며 태그를 생성 할만큼 평판이 부족합니다.)