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/
Когда две таблицы ссылаются друг на друга, вы можете использовать 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.