반응형
Oracle에서 기본 키를 재사용할 수 있도록 이름을 변경하는 방법
Oracle에서 다음과 같은 테이블을 생성합니다.
테이블 "Mig1"() 생성"Id" 정수가 NULL이 아닙니다.제약 조건 "PK_Mig1" 기본 키("Id" ))
그런 다음 PK 이름을 변경합니다.
대체 테이블 "Mig1" 제약 조건 "PK_Mig1"을 "PK_XXX"로 이름 변경
그런 다음 테이블 이름을 변경합니다.
다른 테이블 "Mig1"의 이름을 "XXX"로 변경
그런 다음 이전에 이름이 변경된 테이블의 이름을 사용하는 다른 테이블을 작성하려고 합니다.
테이블 "Mig1"() 생성"Id" 정수가 NULL이 아닙니다.제약 조건 "PK_Mig1" 기본 키("Id" ))
이 시점에서 저는 다음을 얻습니다.An error occurred: ORA-00955: name is already used by an existing object
이것은 첫 번째 테이블의 기본 키가 이름이 바뀌었음에도 불구하고 어떤 식으로든 여전히 존재하기 때문입니다.다음과 같이 두 번째 테이블을 작성하려고 하면:
테이블 "Mig1"() 생성"Id" 정수가 NULL이 아닙니다.제약 조건 "YYY" 기본 키("Id" ))
그건 효과가 있다.그러면 기본 키의 이름을 다시 사용할 수 있도록 연결된 모든 리소스를 사용하여 기본 키의 이름을 올바르게 변경하려면 어떻게 해야 합니까?
기본 키 제약 조건과 연결된 인덱스가 있으며 여전히 "PK_Mig1"이라고 합니다.사용해 보십시오.
ALTER INDEX "PK_Mig1" RENAME TO "PK_XXX";
언급URL : https://stackoverflow.com/questions/6252355/how-to-rename-a-primary-key-in-oracle-such-that-it-can-be-reused
반응형
'programing' 카테고리의 다른 글
mysqdump: 쓰기에서 오류 32를 받았습니다. (0) | 2023.08.04 |
---|---|
사용자 지정 유형을 최대 절전 모드로 설정하여 '원인: java.sql'을(를) 방지합니다.SQL 예외:스트림이 이미 닫혔습니다.' (0) | 2023.08.04 |
오류: 'uint16_t'이(가) 선언되지 않았습니까? (0) | 2023.08.04 |
완료 버튼으로 UI Picker View를 만드는 방법은 무엇입니까? (0) | 2023.08.04 |
테이블스페이스란 무엇이며 왜 그것이 사용됩니까? (0) | 2023.08.04 |