Oracle SQL外键问题

时间:2014-06-24 12:31:53

标签: oracle reference foreign-keys

我正在尝试创建表和引用,但不断收到以下错误:

ERROR at line 4: 
ORA-00907: missing right parenthesis 

...并且已经搜索了高低,没有明确的方法来解决这个问题。我有以下内容:

drop table financing_plans;
CREATE TABLE financing_plans (plan_id     CHAR(10) PRIMARY KEY,
                        institution       VARCHAR2(15) NOT NULL,
                        Loan_type      VARCHAR2(10) NOT NULL,
                        min_down          NUMBER(10,2) NOT NULL,
                        max_loan_amount            NUMBER(10,2) NOT NULL,
                        Percentage           NUMBER(10,2)      NOT NULL,
                        Max_term        NUMBER(10,25)      NOT NULL);

drop table sale_financings;

CREATE TABLE sale_financings (sale_id     CHAR(10) PRIMARY KEY,
                        Down_pay       VARCHAR2(25) NOT NULL,
                        Loan_term      VARCHAR2(18) NOT NULL,
                        FOREIGN KEY ("plan_uid") REFERENCES financing_plans(plan_id)
                        FOREIGN KEY ("sale_uid") REFERENCES sales(sale_id));

drop table sales;

CREATE TABLE sales (sale_id     CHAR(10) PRIMARY KEY,
                        Salesperson_ID       VARCHAR2(25) NOT NULL,
                        Cust_ID      VARCHAR2(10) NOT NULL,
                        VIN          VARCHAR2(10) NOT NULL,
                        Gross_sale_price            NUMBER(10,2) NOT NULL,
                        Mileage           NUMBER(10,2)      NOT NULL,
                        sale_date        DATE,
                        Vehicle_status      VARCHAR2(10) NOT NULL);

任何解决方案,任何人?

谢谢,

2 个答案:

答案 0 :(得分:0)

在创建销售表之前,您似乎在sale_financings中创建了对销售(sale_id)的FK参考。此外,我会在放弃之前检查表退出。

答案 1 :(得分:0)

首先必须为外键创建列,然后创建外键:

CREATE TABLE financing_plans (
  plan_id CHAR(10) PRIMARY KEY
, institution VARCHAR2(15) NOT NULL
, Loan_type VARCHAR2(10) NOT NULL
, min_down NUMBER(10,2) NOT NULL
, max_loan_amount NUMBER(10,2) NOT NULL
, Percentage NUMBER(10,2) NOT NULL
, Max_term NUMBER(10,25) NOT NULL
);
CREATE TABLE sales (
  sale_id CHAR(10) PRIMARY KEY
, Salesperson_ID VARCHAR2(25) NOT NULL
, Cust_ID VARCHAR2(10) NOT NULL
, VIN VARCHAR2(10) NOT NULL
, Gross_sale_price NUMBER(10,2) NOT NULL
, Mileage NUMBER(10,2) NOT NULL
, sale_date DATE
, Vehicle_status VARCHAR2(10) NOT NULL
);
CREATE TABLE sale_financings (
  sale_id CHAR(10) PRIMARY KEY
, Down_pay VARCHAR2(25) NOT NULL
, Loan_term VARCHAR2(18) NOT NULL
, plan_id char(10) not null
, sale_uid char(10) not null
, CONSTRAINT constraint_name_fk FOREIGN KEY (plan_id) REFERENCES financing_plans(plan_id)
, constraint constraint_name_fk2 foreign key (sale_uid) references sales(sale_id)
);