ORA-02264: 기존 제약 조건에서 이미 사용된 이름
SQL 작업 중인데 테이블을 만드는 데 문제가 발생했습니다!다음은 내 코드:
CREATE TABLE Voucher_Types
(
ID Number(3, 0),
Abbreviation VarChar(2),
Voucher_Type VarChar(100),
EntryBy VarChar(25),
EntryDate Date,
CONSTRAINT ID_PK Primary Key(ID)
);
그리고 다음과 같은 오류가 나타납니다.
ORA-02264: 기존 제약 조건에서 이미 사용된 이름
Oracle 10g을 사용하고 있습니다.
나는 그것을 고글링하고 몇 가지 주제를 찾았지만 그것들은 나를 도와주지 않았습니다. 누군가 이 문제에 대해 나를 도와줄 수 있나요!미리 감사드립니다..!
이미 이름으로 제약된 다른 테이블이 있습니다.ID_PK
.
어떤 테이블인지 알고 싶다면, 당신은 시도해 볼 수 있습니다.
select owner, table_name from dba_constraints where constraint_name = 'ID_PK';
아마도, 당신은 당신의 것을 베꼈을 것입니다.create table
statement이지만 기본 키의 제약 조건 이름을 변경하지 않았습니다.
일반적으로 제약 조건의 이름에 테이블 이름을 포함하는 것이 좋습니다.한 가지 이유는 정확히 그러한 "오류"를 방지하기 위함입니다.
그래서, 당신의 경우에는, 당신이
CREATE TABLE Voucher_Types
(
...
CONSTRAINT Voucher_Types_PK Primary Key(ID)
);
업데이트 동일한 제약 조건 이름을 두 번 사용할 수 없는 이유는 무엇입니까?(댓글에 있는 질문에 따라):제약 조건을 식별하는 이름이기 때문입니다.실행 중인 시스템에서 제약 조건을 위반한 경우 어떤 제약 조건이었는지 알고 싶으므로 이름이 필요합니다.그러나 이 이름이 여러 제약 조건을 나타낼 수 있는 경우에는 이름이 특별히 사용되지 않습니다.
오류 메시지는 스키마에 ID_PK라는 다른 제약 조건이 이미 있음을 알려줍니다. 다른 이름을 사용하면 됩니다.
CREATE TABLE Voucher_Types
(
ID Number(3, 0),
Abbreviation VarChar(2),
Voucher_Type VarChar(100),
EntryBy VarChar(25),
EntryDate Date,
CONSTRAINT VOUCHER_TYPES_ID_PK Primary Key(ID)
);
위반 제약 조건 찾기
SELECT * FROM user_constraints WHERE CONSTRAINT_NAME = 'ID_PK'
이는 ID_PK trywith라는 제약 조건이 있음을 의미합니다.CONSTRAINT Voucher_Types_ID_PK Primary Key(ID)
예를 들어.
존재 여부를 확인할 수 있습니다.
select * from user_constraints where upper(constraint_name) = 'ID_PK';
아니면
select * from all_constraints where upper(constraint_name) = 'ID_PK';
다른 테이블에 동일한 제약 조건 이름이 있습니다. 제약 조건 이름을 변경해야 합니다.
이 제약 조건을 사용한 테이블 이름을 보려면 다음 쿼리를 볼 수 있습니다.
table_name,tvt_name을(를) user_lower(를)='id_lower'에서 선택합니다;
프랭크 슈미트의 답변은 좋습니다.그러나 제약 조건 이름의 경우 테이블 별칭을 제약 조건 이름의 일부로 사용할 수도 있습니다.제약 조건의 이름은 vte_pk와 같습니다.그리고 제약 조건명에 해당하는 열의 이름을 호출할 필요가 없습니다.기본 키가 2개 이상의 열이 있는 경우에는 어떻게 합니까?
따라서... CONSTRAINT VTE_PK Primary Key(ID) ...
.
언급URL : https://stackoverflow.com/questions/22089212/ora-02264-name-already-used-by-an-existing-constraint
'IT' 카테고리의 다른 글
워드프레스에서 비교할 추가를 만드는 방법? (0) | 2023.09.15 |
---|---|
Linux 터미널의 클립보드에 파일 내용 복사 (0) | 2023.09.15 |
NodeJS/express:캐시 및 304 상태 코드 (0) | 2023.09.10 |
외국 열쇠는 어디에 보관해야 합니까? (0) | 2023.09.10 |
jQuery를 사용하여 클릭 시 앵커 텍스트/href를 가져오는 방법? (0) | 2023.09.10 |