如何解决多个外键oracle
在此数据库中,我创建了7个表,但在我的后2个表中,billing
和product_billing
表中,我需要添加外键,我使用了下面的方法,但是得到了两个不同的方法执行时每个表上都有错误。
这是我的代码:
CREATE TABLE CUSTOMER(
CustomerID INT NOT NULL,FirstName VARCHAR(50) NOT NULL,Surname VARCHAR(50) NOT NULL,Address VARCHAR(50)NOT NULL,ContactNumber NUMBER NOT NULL,Email VARCHAR(50) NOT NULL,PRIMARY KEY(CustomerID));
CREATE TABLE EMPLOYEE(
EmployeeID INT NOT NULL,Position VARCHAR(50)NOT NULL,PRIMARY KEY(EmployeeID));
CREATE TABLE DELIVERY(
DeliveryID INT NOT NULL,Description VARCHAR(50) NOT NULL,DespatchDate DATE,DeliveryDate DATE,PRIMARY KEY(DeliveryID));
CREATE TABLE RETURNS(
ReturnID INT NOT NULL,ReturnDate DATE NOT NULL,Reason VARCHAR(50) NOT NULL,PRIMARY KEY(ReturnID));
CREATE TABLE PRODUCT(
ProductID INT NOT NULL,Product VARCHAR(50) NOT NULL,Price VARCHAR(50) NOT NULL,QTY INT NOT NULL,PRIMARY KEY(ProductID));
CREATE TABLE BILLING(
BillID INT NOT NULL,CONSTRAINT CustomerID FOREIGN KEY (CustomerID) REFERENCES CUSTOMER(CustomerID),BillDate DATE,CONSTRAINT EmployeeID FOREIGN KEY (EmployeeID) REFERENCES EMPLOYEE(EmployeeID),PRIMARY KEY(BillID));
CREATE TABLE PRODUCT_BILLING(
CONSTRAINT DeliveryID FOREIGN KEY (DeliveryID) REFERENCES DELIVERY(DeliveryID),CONSTRAINT ReturnID FOREIGN KEY (ReturnID) REFERENCES RETURNS(ReturnID),CONSTRAINT ProductID FOREIGN KEY (ProductID) REFERENCES PRODUCT(ProductID),CONSTRAINT BillID FOREIGN KEY (BillID) REFERENCES BILLING(BillID));
这些是错误:
Error starting at line : 40 in command -
CREATE TABLE BILLING(
BillID INT NOT NULL,PRIMARY KEY(BillID))
Error report -
ORA-00904: "CUSTOMERID": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error starting at line : 47 in command -
CREATE TABLE PRODUCT_BILLING(
CONSTRAINT DeliveryID FOREIGN KEY (DeliveryID) REFERENCES DELIVERY(DeliveryID),CONSTRAINT BillID FOREIGN KEY (BillID) REFERENCES BILLING(BillID))
Error report -
ORA-00904: : invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
解决方法
请使用以下语法创建外键引用,
CREATE TABLE BILLING(
BillID INT NOT NULL,CustomerID INT REFERENCES CUSTOMER(CustomerID),BillDate DATE,EmployeeID INT REFERENCES EMPLOYEE(EmployeeID),PRIMARY KEY(BillID));
CREATE TABLE PRODUCT_BILLING(
DeliveryID INT REFERENCES DELIVERY(DeliveryID),ReturnID INT REFERENCES RETURNS(ReturnID),ProductID INT REFERENCES PRODUCT(ProductID),BillID INT REFERENCES BILLING(BillID));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。