2013-11-21 71 views
0

我在Oracle中構建了一些非常簡單的表,並且在創建外鍵時遇到了問題。 Equipment中的fac_ID是引用Faculty中的fac_ID的FK,但它創建了一個錯誤。在Oracle中創建外鍵時遇到麻煩創建表

我正在使用Oracle 11g Express。當我運行「選擇設備*」它產生的錯誤「ORA-00942:表或視圖不存在」

CREATE TABLE Faculty(
fac_ID  VARCHAR(10) NOT NULL, 
fac_Street VARCHAR(70) NOT NULL, 
fac_City VARCHAR(30) NOT NULL, 
fac_PROV VARCHAR(2) NOT NULL, 
fac_Phone VARCHAR(12) NOT NULL, 
PRIMARY KEY (fac_ID) 
); 

CREATE TABLE Equipment(
equip_ID  VARCHAR(10) NOT NULL, 
fac_ID   VARCHAR(10) NOT NULL, 
equip_Name  VARCHAR(50) NOT NULL, 
equip_Quantity VARCHAR(3) NOT NULL, 
equip_Purchase_Date DATE NOT NULL, 
PRIMARY KEY (equip_ID), 
CONSTRAINT fac_ID FOREIGN KEY (fac_ID) REFERENCES Faculty(fac_ID) 
); 
+0

您的代碼適用於我,您得到了什麼錯誤?您使用的是哪個版本的Oracle?嘗試將「FOREIGN KEY」約束的名稱更改爲其他名稱,例如'fac_id_fk'。 –

+0

@PrzemyslawKruglej我正在使用Oracle 11g Express。當我運行「select * from equipment」時,它會產生錯誤「\t ORA-00942:表或視圖不存在」 – user2923395

+0

表創建成功嗎?如果你運行這個查詢:'SELECT * FROM user_objects WHERE object_name ='EQUIPMENT';'它是否返回任何東西?您是否嘗試在創建表時以與您登錄的用戶相同的用戶身份運行select語句? –

回答

0

我也得到了以下錯誤

Error starting at line : 56 in command - drop table SONICLIVE.Address purge Error report - SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause:
*Action:

什麼,我所做的就是改變把表名雙引號內「地址」

CREATE TABLE "Studio" (
    "ID" NUMBER(5) PRIMARY KEY, 
    "NAME" VARCHAR(20), 
    "PHONE" VARCHAR(11), 
    "ADDRESS_ID" NUMBER, 
    "MANAGER_ID" NUMBER, 
    CONSTRAINT fk_ADDRESS FOREIGN KEY (ADDRESS_ID) REFERENCES "Address"(ID) 
); 

和它的工作。我正在使用Oracle llg r2 XE進行本地測試