如何在表的引用中添加外键,该表将在下一行中创建

时间:2018-07-25 12:23:09

标签: mysql sql

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/使用此编辑器

1 个答案:

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

外键引用也应该指向主键,我通常将其放在表的第一列中。 Here是一个SQL提琴。