programing

Oracle에서 기본 키를 재사용할 수 있도록 이름을 변경하는 방법

abcjava 2023. 8. 4. 22:34
반응형

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

반응형