使用外键创建表

时间:2012-12-17 20:07:03

标签: sql oracle foreign-keys create-table

嘿所有我正在尝试创建一个包含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)的情况下尝试了它,但我仍然遇到同样的错误。感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分: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)
)