ограничения внешнего ключа оракула 10g - PullRequest
1 голос
/ 28 февраля 2011
ALTER TABLE  employees
ADD  CONSTRAINT emp_dno_fk FORIEGN KEY(Dno) REFERENCES Departments(Dno);

Когда я использую эту команду, она показывает ошибку вроде

ОГРАНИЧЕНИЕ Спецификация здесь не разрешена.

Но когда я использую эту команду, она работает:

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

Может кто-нибудь сказать мне, почему Oracle не разрешает ввод ключевого слова FOREIGN KEY в первой команде?

1 Ответ

2 голосов
/ 28 февраля 2011

Сообщение об ошибке, правда, не очень полезно.Ниже приведены примеры того, как ограничение ссылочной целостности может быть создано в 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);

Лично я избегаю синтаксических версий, которые добавляют столбец, и предпочитаю добавлять его самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...