Как добавить внешний ключ со ссылками на таблицу, которая будет создана в следующей строке

0
CREATE TABLE Departament
(d_nume varchar(30), d_nr int, manager varchar(30), PRIMARY KEY(d_nr), 
FOREIGN KEY (manager) REFERENCES Angajat(nume));


CREATE TABLE Angajat
(nume varchar(30), prenume varchar(30), cnp char(13), d_nr int, PRIMARY KEY(cnp), 
FOREIGN KEY(d_nr) REFERENCES Departament(d_nr));

"Невозможно добавить ограничение внешнего ключа"

Я использую этот редактор онлайн http://sqlfiddle.com/

  • 3
    Таблица должна быть создана до того, как вы сможете добавить ограничение внешнего ключа.
Теги:

1 ответ

2

Когда две таблицы ссылаются друг на друга, вы можете использовать alter table:

CREATE TABLE Departament (
    d_nr int,
    d_nume varchar(30),
    manager char(13), 
    PRIMARY KEY (d_nr)
);

CREATE TABLE Angajat (
    cnp char(13),
    nume varchar(30),
    prenume varchar(30),
    d_nr int,
    PRIMARY KEY(cnp),
    FOREIGN KEY(d_nr) REFERENCES Departament(d_nr)
);

ALTER TABLE Departament ADD CONSTRAINT FOREIGN KEY (manager) REFERENCES Angajat(cnp);

Ссылки на внешние ключи также должны быть связаны с первичным ключом, который я обычно делаю первым столбцом в таблице. Вот скрипт SQL.

  • 0
    Разве это не будет ужасной круговой ссылкой?
  • 2
    @ P.Salmon. , , Не за что. У отдела есть менеджер, который является служащим. Сотрудники находятся в отделе. Это кажется разумным.
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню