복붙노트

[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. ==============================

    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) 
      ); 
    

    깡깡이

  2. from https://stackoverflow.com/questions/30429956/foreign-key-creation-issue-in-oracle by cc-by-sa and MIT license