[SQL] 오라클의 외래 키 생성 문제
SQL오라클의 외래 키 생성 문제
나는이 두 테이블을 만들려고 할 때 내가 얻을 :
나는 멍청한 놈 오류 확신하지만 난 그냥 보이지 않아요. 누군가가 내가 잘못을 뭘하는지 지적시겠습니까? 미리 감사드립니다.
CREATE TABLE Collectibles(
CollectibleNum Number(10) NOT NULL,
CONSTRAINT collectibles_pk PRIMARY KEY(CollectibleNum));
Create table DiecastItems(
DiecastName VARCHAR2(45) NOT NULL,
DiecastCopy NUMBER(2) NOT NULL,
DiecastScale VARCHAR2(25),
ColorScheme VARCHAR2(25),
DiecastYear NUMBER(4),
CONSTRAINT diecastItem_pk PRIMARY KEY(DiecastName, DiecastCopy),
CONSTRAINT diecastItem_Collectible_fk FOREIGN KEY(CollectibleNum) REFERENCES Collectibles(CollectibleNum));
해결법
-
==============================
1.당신은 FK를 추가 할 때 부모 테이블에서 상위에 만들고있는 테이블에서 자식으로 열을 연결합니다. 따라서, 당신은 자식 열 이름뿐만 아니라 부모의 열 이름을 제공해야합니다.
당신은 FK를 추가 할 때 부모 테이블에서 상위에 만들고있는 테이블에서 자식으로 열을 연결합니다. 따라서, 당신은 자식 열 이름뿐만 아니라 부모의 열 이름을 제공해야합니다.
일반적인 구문은
CREATE TABLE table_name ( column1 datatype null/not null, column2 datatype null/not null, ... CONSTRAINT fk_column FOREIGN KEY (column1, column2, ... column_n) REFERENCES parent_table (column1, column2, ... column_n) );
참조 PARENT_TABLE 사이의 열이 부모 테이블에서있는 동안주의 FOREIGN KEY 괄호 사이의 열, 작성중인 테이블에서 것을.
당신은 yourDiecastItems에서 CollectibleNum라는 컬럼이 없습니다. 따라서, 다음은 이러한 열을 추가하여 잘 작동합니다 :
CREATE TABLE collectibles ( collectiblenum NUMBER(10) NOT NULL, CONSTRAINT collectibles_pk PRIMARY KEY(collectiblenum) ); CREATE TABLE diecastitems ( diecastname VARCHAR2(45) NOT NULL, diecastcopy NUMBER(2) NOT NULL, diecastscale VARCHAR2(25), colorscheme VARCHAR2(25), diecastyear NUMBER(4), collectiblenum NUMBER(10), --added column CONSTRAINT diecastitem_pk PRIMARY KEY(diecastname, diecastcopy), CONSTRAINT diecastitem_collectible_fk FOREIGN KEY(collectiblenum) REFERENCES collectibles(collectiblenum) );
깡깡이
from https://stackoverflow.com/questions/30429956/foreign-key-creation-issue-in-oracle by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 날짜 형식을 변환 (0) | 2020.06.19 |
---|---|
[SQL] 최대 열 값과 인덱스 값마다 하나 개의 행을 선택 (0) | 2020.06.19 |
[SQL] 왜 다음은 크게 쿼리 시간을 증가에 가입합니까? (0) | 2020.06.19 |
[SQL] 데이터베이스 내부에 저장된 모든 이미지를 표시하는 방법 (0) | 2020.06.19 |
[SQL] 왜 PostgreSQL는 작은 테이블에 내 인덱스를 사용하지 않는? (0) | 2020.06.19 |