2013-08-25 3 views
0

oracle을 사용하여 외래 키가있는 테이블을 만들려고합니다. 나는 오류가 발생했습니다Oracle 테이블 만들기

CREATE TABLE product (
    product_id  INT(7) NOT NULL, 
    supplier_id  INT(7) NOT NULL, 
    product_name  VARCHAR2(30), 
    product_price DOUBLE(4), 
    product_category VARCHAR2(30), 
    product_brand VARCHAR2(20), 
    product_expire DATE, 
    PRIMARY KEY (product_id), 
    FOREIGN KEY (supplier_id) 
) 

다음과 같이 내 구문 도와주세요

Error at Command Line:2 Column:14 Error report: SQL Error: ORA-00907: missing right parenthesis 00907. 00000 - "missing right parenthesis" *Cause:
*Action:

을 말하는 것입니다!

+3

귀하의 외래 키가 매우 부족한 것 같다. – Mat

답변

2

외래 키는 다른 테이블의 다른 열을 제공해야합니다. 또한,

  • (외래 키에 대한 올바른 구문으로 쿼리를 작성하는 방법) DOULBE(4)에서 NUMBER(12,4)에 열 PRODUCT_PRICE에 대한 데이터 유형을 변경

    1. Here is the documentation you need to fix your issue

      .

  • +0

    그는 Oracle Database가 아닌 Oracle Database를 사용하고 있습니다. –

    +0

    이미 시도! 여전히 다른 오류가 발생했습니다 – user2714726

    +0

    @ user2714726 다른 오류가 있습니까? –

    0

    당신은 INT 유형에 대한 제한을 사용하지 말아야 ... 오라클은 INT 유형에 대한 기본 길이를 취할 것입니다. int 대신 Number 형식을 사용하여 실행할 수 있습니다. 그리고 DOUBLE PRECISION은 oracle의 데이터 유형이지만 Double은 존재하지 않습니다. 또한 외래 키 구문이 잘못되었습니다. 그래서이 쿼리는 확실히 작동합니다

    CREATE TABLE product(
        product_id  number(7) NOT NULL, 
        supplier_id  number(7) NOT NULL, 
        product_name  VARCHAR2(30), 
        product_price DOUBLE PRECISION, 
        product_category VARCHAR2(30), 
        product_brand VARCHAR2(20), 
        product_expire DATE, 
        PRIMARY KEY (product_id), 
        FOREIGN KEY (supplier_id) 
        REFERENCES parent_table (supplier_id) 
    );