2016-08-14 179 views
1
CREATE TABLE CUSTOMER1 
    (
    CUSTOMERID   VARCHAR2(2) NOT NULL, 
    FIRSTNAME   VARCHAR2(50) NOT NULL, 
    LASTNAME   VARCHAR2(50) NOT NULL, 
    PHONENUMBER   VARCHAR2(50) NOT NULL, 
    BIRTHDATE   DATE NOT NULL, 
    DRIVERLICENSENUMBER NUMBER, 
    STATUS    VARCHAR2(50), 
    CREDITCARENUMBER NUMBER, 
    CONSTRAINT CustomerID_PK PRIMARY KEY(CUSTOMERID) 
); 



CREATE TABLE CCATEGORY 
(
    CATEGORYID INT NOT NULL, 
    CATEGORYNAME VARCHAR2(50) NOT NULL, 
CONSTRAINT categoryID_pk PRIMARY KEY (CATEGORYID) 
); 


CREATE TABLE TAPE 
(
TAPEID   NUMBER(5) NOT NULL, 
TAPETITLE  VARCHAR2(200) NOT NULL, 
RELEASEYEAR NUMBER(5) NOT NULL, 
DATEPURCHASED DATE NOT NULL, 
PRICE   NUMERIC(5) NOT NULL, 
RENTEDOUT  VARCHAR2(20) NOT NULL, 
RATING   VARCHAR2(10) NOT NULL, 
ACTIONONRETURN VARCHAR2(50) NOT NULL, 
PRIMARY KEY(TAPEID), 
CONSTRAINT FK_CATEGORYID FOREIGN KEY(CATEGORYID) REFERENCES CCATEGORY(CATEGORYID), 
CONSTRAINT FK_RESERVEDBY FOREIGN KEY(CUSTOMERID) REFERENCES CUSTOMER(CUSTOMERID) 
); 

客户,并CCategory表中创建当我尝试创建TAPE表我得到以下错误:。SQL Error: ORA-00904: "CATEGORYID": invalid identifier似乎无法弄清楚为什么我创建的客户表,然后再尝试创建磁带表之前类别表。SQL错误:ORA-00904:“CATEGORYID”:无效的标识符”

回答

1

问题是,你有没有在TAPE表中定义CATEGORYIDCUSTOMERID,加入它,它会工作。

完整的声明将是

CREATE TABLE TAPE 
(
TAPEID   NUMBER(5) NOT NULL, 
TAPETITLE  VARCHAR2(200) NOT NULL, 
RELEASEYEAR NUMBER(5) NOT NULL, 
DATEPURCHASED DATE NOT NULL, 
PRICE   NUMERIC(5) NOT NULL, 
RENTEDOUT  VARCHAR2(20) NOT NULL, 
RATING   VARCHAR2(10) NOT NULL, 
ACTIONONRETURN VARCHAR2(50) NOT NULL, 
CATEGORYID INT NOT NULL, 
CUSTOMERID   VARCHAR2(2) NOT NULL, 
CONSTRAINT tape_primary_key PRIMARY KEY(TAPEID), 
CONSTRAINT FK_CATEGORYID FOREIGN KEY(CATEGORYID) REFERENCES CCATEGORY(CATEGORYID), 
CONSTRAINT FK_RESERVEDBY FOREIGN KEY(CUSTOMERID) REFERENCES CUSTOMER1(CUSTOMERID) 
); 
+0

我试过了,我仍然得到相同的错误。 – Suji

+0

好的。让我来运行它。 – Utsav

+0

检查更新的答案。问题在于你没有在'TAPE'表格中定义'CATEGORYID'和'CUSTOMERID'。添加它,它会工作。 – Utsav