ORACLE-创建具有相同列名的多个表

问题描述 投票:0回答:2

我正在尝试创建8个表:类别顾客雇员产品展示订单详细信息运送人供应商供应商

其中一些将具有相同的列名,例如供应商和客户中的CompanyName。

但是,当我运行代码时,它给了我错误:

ORA-00907:缺少右括号要么:ORA-00955:名称已被现有对象使用]

我将如何解决?

below is my code:

    CREATE TABLE CATEGORIES 
(

    CATEGORYID NUMBER(8,0),
    CATEGORYNAME VARCHAR2(15) NOT NULL,
    CATEGORYCODE NUMBER(6,0),
    DESCRIPTION VARCHAR2(300),
    CONSTRAINT CATEGORIES_CATEGORYID_PK PRIMARY KEY (CATEGORYID)
);


CREATE TABLE CUSTOMERS 
(
    CUSTOMERID CHAR(5),
    COMPANYNAME VARCHAR2(40) NOT NULL,
    CONTACTNAME VARCHAR2(30),
    CONTACTTITLE VARCHAR2(30),
    ADDRESS VARCHAR2(30),
    CITY VARCHAR2(15),
    REGION VARCHAR2(15),
    POSTALCODE VARCHAR2(10),
    COUNTRY VARCHAR2(15),
    PHONE VARCHAR2(24),
    FAX VARCHAR2(24),
    EMAIL VARCHAR2(50),
    CONSTRAINT CUSTOMERS_CUSTOMERID_PK PRIMARY KEY(CUSTOMERID) 
);


CREATE TABLE EMPLOYEES
(
    EMPLOYEEID NUMBER(8,0),
    LASTNAME VARCHAR2(20) NOT NULL,
    FIRSTNAME VARCHAR2(10) NOT NULL,
    TITLE VARCHAR2(30),
    TITLEOFCOURTESY VARCHAR2(25),
    BIRTHDATE DATE(7),
    HIREDATE DATE(7),
    ADDRESS VARCHAR2(60),
    CITY VARCHAR2(15),
    REGION VARCHAR2(15),
    POSTALCODE VARCHAR2(10),
    COUNTRY VARCHAR2(15),
    HOMEPHONE VARCHAR2(24),
    EXTENSION VARCHAR2(4),
    NOTES VARCHAR2(600),
    REPORTSTO NUMBER(8,0),
    SIN CHAR(9),
    CONSTRAINT EMLOYEES_EMPLOYEEID_PK PRIMARY KEY(EMPLOYEEID)


);


CREATE TABLE ORDERDETAILS
(
    ORDERID NUMBER(8,0),
    PRODUCTID NUMBER(8,0),
    UNITPRICE NUMBER(8,2) NOT NULL,
    QUANTITY NUMBER(6,0) NOT NULL,
    DISCOUNT NUMBER(2,2) NOT NULL,
CONSTRAINT ORDERDETAILS_ORDERID_PRODUCTID_PK PRIMARY KEY (ORDERID, PRODUCTID)

);


CREATE TABLE ORDERS
(
    ORDERID NUMBER(8,0),
    CUSTOMERID CHAR(5),
    EMPLOYEEID NUMBER(22),
    TERRITORYID VARCHAR2(20),
    ORDERDATE DATE(7),
    REQUIREDATE DATE(7),
    SHIPPEDDATE DATE(7),
    SHIPVIA NUMBER(8,0),
    FREIGHT NUMBER(8,2),
    SHIPNAME VARCHAR2(40),
    SHIPADDRESS VARCHAR2(60),
    SHIPCITY VARCHAR2(15),
    SHIPREGION VARCHAR2(15),
    SHIPPOSTALCODE VARCHAR2(10),
    SHIPCOUNTRY VARCHAR2(15),
    CONSTRAINT ORDERS_ORDERID_PK PRIMARY KEY(ORDERID),
    CONSTRAINT ORDERS_CUSTOMERID_FK FOREIGN KEY (CUSTOMERID) 
    REFERENCES CUSTOMERS(CUSTOMERID),
    CONSTRAINT ORDERS_EMPLOYEEID_FK FOREIGN KEY (EMPLOYEEID) 
    REFERENCES EMPLOYEES(EMPLOYEEID)
);


CREATE TABLE PRODUCTS
(
    PRODUCTID NUMBER(8,0),
    PRODUCTNAME VARCHAR2(4) NOT NULL,
    SUPPLIERID NUMBER(8,0),
    CATEGORYID NUMBER(8,0),
    QUANTITYPERUNIT VARCHAR2(20),
    UNITPRICE NUMBER(8,2),
    UNITSINSTOCK NUMBER(6,0),
    UNITSONORDER NUMBER(6,0),
    REORDERLEVEL NUMBER(6,0),
    DISCONTINUED NUMBER(1,0) NOT NULL,
    CONSTRAINT PRODUCTS_CATEGORYID_FK FOREIGN KEY (CATEGORYID)
    REFERENCES CATEGORIES(CATEGORYID),
    CONSTRAINT PRODUCTS_SUPPLIERID_FK FOREIGN KEY (SUPPLIERID)
    REFERENCES SUPPLIERS(SUPPLIERID)

);

CREATE TABLE SUPPLIERS
(
    SUPPLIERID NUMBER(8,0),
    COMPANYNAME VARCHAR2(40) NOT NULL,
    CONTACTNAME VARCHAR2(30),
    CONTACTTITLE VARCHAR2(30),
    ADDRESS VARCHAR2(60),
    CITY VARCHAR2(15),
    REGION VARCHAR2(15),
    POSTALCODE VARCHAR2(10),
    COUNTRY VARCHAR2(15),
    PHONE VARCHAR2(24),
    FAX VARCHAR2(24),
    HOMEPAGE VARCHAR(200),
    CONSTRAINT SUPPLIERS_SUPPLIERID_PK PRIMARY KEY(SUPPLIERID)

);


CREATE TABLE SHIPPERS
(
    SHIPPERID NUMBER(8,0),
    COMPANYNAME VARCHAR2(40) NOT NULL,
    PHONE VARCHAR2(24),
    CONSTRAINT SHIPPERS_SHIPPERID_PK PRIMARY KEY(SHIPPERID)


);

我正在尝试创建8个表:分类客户雇员产品订单运送商供应商供应商其中一些将具有相同的列名,例如Suppliers中的CompanyName和...

sql oracle foreign-keys primary-key
2个回答
0
投票

J


0
投票

您的代码中存在三个问题:

© www.soinside.com 2019 - 2024. All rights reserved.