2012-12-17 64 views
1

嘿,我試圖創建一個包含Foreign Key的表格,出於某種原因,我收到了錯誤。錯誤說00907. 00000 - "missing right parenthesis"這很奇怪,因爲我沒有隨機左括號。我擡起頭,如何創建一個表,一個Foreign Key,並導致了下面的代碼:使用外鍵創建表格

Create Table EMPHIREINFO 
(
empname VARCHAR2(10) NOT NULL FOREIGN KEY REFERENCES EMPADDRESS(empname), 
empno NUMBER(4,0) NOT NULL PRIMARY KEY, 
startdt DATE, 
enddt DATE, 
cntrlgth NUMBER(5,0) 
) 

我有和沒有REFERENCES EMPADDRESS(empname)嘗試過了,我仍然得到同樣的錯誤。任何幫助表示讚賞,謝謝。

+0

女巫DBMS你使用? – berty

+0

這是一個oracle錯誤。 – Blorgbeard

+0

抱歉沒有提及,但是它是在Oracle中。 –

回答

5

您需要在FOREIGN KEY之後指定列。不過,我寧願使用命名約束,例如

Create Table EMPHIREINFO 
(
empname VARCHAR2(10) NOT NULL , 
empno NUMBER(4,0) NOT NULL , 
startdt DATE, 
enddt DATE, 
cntrlgth NUMBER(5,0), 
CONSTRAINT PK_EMPHIREINFO PRIMARY KEY(empno) USING INDEX 
(CREATE UNIQUE INDEX IDXU_EMPHIREINFO_empno ON EMPHIREINFO(empno)), 
CONSTRAINT FK_EMPHIREINFO_EMPNAME FOREIGN KEY(empname) 
REFERENCES EMPADDRESS(empname) 
) 
+0

+1命名的限制(雖然「使用索引」是一個有點矯枉過正,可能混淆像亞當一個新手) –

+0

沒關係啊,感謝清理這件事。從我從你的帖子中刪除的內容看起來像我缺少關鍵字'CONSTRAINT',這導致我不在'FOREIGN KEY'後面加上列名。這是正確的,還是我沒有得到它? –

+0

@a_horse_with_no_name spot on lol –