oracle 10g外键约束

时间:2011-02-28 02:53:40

标签: oracle foreign-keys

ALTER TABLE  employees
ADD  CONSTRAINT emp_dno_fk FORIEGN KEY(Dno) REFERENCES Departments(Dno);

当我使用此命令时,它会显示错误,如

  

这里不允许使用CONSTRAINT规范。

但是当我使用这个命令时,它可以工作:

ALTER TABLE  employees
ADD  CONSTRAINT emp_dno_fk Dno REFERENCES Departments(Dno);

有人能告诉我为什么Oracle在第一个命令中不允许使用FOREIGN KEY KEYWORD吗?

1 个答案:

答案 0 :(得分:2)

诚然,错误消息不是很有帮助。以下是如何在Oracle中创建参照完整性约束的示例:

以下示例假定Dno中已经存在employees列:

ALTER TABLE employees ADD
  CONSTRAINT emp_dno_fk FOREIGN KEY (Dno) REFERENCES Departments (Dno);

ALTER TABLE employees ADD
  FOREIGN KEY (Dno) REFERENCES Departments (Dno);

以下示例假设Dno中不存在employees列:

ALTER TABLE employees ADD
  CONSTRAINT emp_dno_fk Dno REFERENCES Departments (Dno);

ALTER TABLE employees ADD
  Dno REFERENCES Departments (Dno);

就个人而言,我避免使用添加列的语法版本,而是希望自己添加它。