“缺少右括号”-00907。00000

时间:2020-10-13 16:32:15

标签: sql oracle foreign-keys create-table ora-00907

CREATE TABLE Sale_FactTable 
(EmpID NUMBER FOREIGN KEY REFERENCES Employee_Dimension(EmpID),
ProductNum NUMBER FOREIGN KEY REFERENCES Product_Dimension(ProductNum),
SupplierNum NUMBER FOREIGN KEY REFERENCES Supplier_Dimension(SupplierNum),
SaleID NUMBER FOREIGN KEY REFERENCES SALE(SaleID),
ClerkID NUMBER FOREIGN KEY REFERENCES Sale_Clerk_Dimension (ClerkID),
ProductID NUMBER FOREIGN KEY REFERENCES Product_Dimension(ProductID),
BranchID NUMBER FOREIGN KEY REFERENCES Branch_Dimension(BranchID),
LineID NUMBER FOREIGN KEY REFERENCES Sale_Line_Item_Dimension(LineID),
CustomerID NUMBER FOREIGN KEY REFERENCES Customer_Dimension(CustomerID),
SaleDate Date FOREIGN KEY REFERENCES Sale_Line_Item_Dimension(SaleDate));

Error:
Error starting at line : 60 in command -
CREATE TABLE Sale_FactTable 
(EmpID NUMBER FOREIGN KEY REFERENCES Employee_Dimension(EmpID),
ProductNum NUMBER FOREIGN KEY REFERENCES Product_Dimension(ProductNum),
SupplierNum NUMBER FOREIGN KEY REFERENCES Supplier_Dimension(SupplierNum),
SaleID NUMBER FOREIGN KEY REFERENCES SALE(SaleID),
ClerkID NUMBER FOREIGN KEY REFERENCES Sale_Clerk_Dimension (ClerkID),
ProductID NUMBER FOREIGN KEY REFERENCES Product_Dimension(ProductID),
BranchID NUMBER FOREIGN KEY REFERENCES Branch_Dimension(BranchID),
LineID NUMBER FOREIGN KEY REFERENCES Sale_Line_Item_Dimension(LineID),
CustomerID NUMBER FOREIGN KEY REFERENCES Customer_Dimension(CustomerID),
SaleDate Date FOREIGN KEY REFERENCES Sale_Line_Item_Dimension(SaleDate))
Error report -
ORA-00907: missing right parenthesis
00907. 00000 -  "missing right parenthesis"
*Cause:    
*Action:

2 个答案:

答案 0 :(得分:0)

声明内联外键的语法为:

<column_name> <datatype> references <parent_table(parent_column_name)>

基本上就是这样:

empid number foreign key references employee_dimension(empid)

应写为:

empid number references employee_dimension(empid)

或者,您可以在单独的子句中声明外键,这使您有机会选择键的名称(与内联语法相反,后者由数据库自动选择名称):

empid number,
constraint empid_fk foreign key references employee_dimension(empid)

答案 1 :(得分:0)

尝试为

CREATE TABLE sale_facttable
(
   empid         NUMBER    REFERENCES employee_dimension (empid),
   productnum    NUMBER    REFERENCES product_dimension (productnum),
   suppliernum   NUMBER    REFERENCES supplier_dimension (suppliernum),
   saleid        NUMBER    REFERENCES sale (saleid),
   clerkid       NUMBER    REFERENCES sale_clerk_dimension (clerkid),
   productid     NUMBER    REFERENCES product_dimension (productid),
   branchid      NUMBER    REFERENCES branch_dimension (branchid),
   lineid        NUMBER    REFERENCES sale_line_item_dimension (lineid),
   customerid    NUMBER    REFERENCES customer_dimension (customerid),
   saledate      DATE    REFERENCES sale_line_item_dimension (saledate)
);
相关问题