Как мне решить «Ошибка не может добавить ограничение внешнего ключа»? - PullRequest
0 голосов
/ 15 ноября 2018

Итак, я использую sqlfiddle, но всегда получаю сообщение об ошибке «не могу добавить ограничение внешнего ключа». Может кто-нибудь помочь мне найти ошибку? Я уверен, что проблема в первой таблице (профессор), как будто вы удалите оба ограничения FK, код работает отлично.

CREATE TABLE Professor (
Inicials char(2) not null,
nom varchar(30),
DNI varchar(10),
Email varchar(30),
CONSTRAINT inicials_pk PRIMARY KEY (Inicials),
CONSTRAINT dni_professor UNIQUE (DNI),
CONSTRAINT Email_professor UNIQUE (Email)
);

INSERT INTO Professor (Inicials, nom, DNI, Email)
VALUES ('JF','Joel Ferragut','56783698V','jferragut@iesmontisa.org');
INSERT INTO Professor (Inicials, nom, DNI, Email)
VALUES ('AE','Aleix Esteve','56983698V','aesteve@iesmontisa.org');
INSERT INTO Professor (Inicials, nom, DNI, Email)
VALUES ('KC','Kevin Costes','56883698V','kevincostes@iesmontisa.org');

CREATE TABLE Grup (
Nivell varchar(10),
Curs varchar(10),
Lletra varchar(5),
Aula varchar(5),
CONSTRAINT GrupNivell_pk PRIMARY KEY (Nivell, Curs, Lletra)
);

INSERT INTO Grup (Nivell, Curs, Lletra, Aula)
VALUES ('1','2018-2019','A','24');

CREATE TABLE Docencia (
hores_totals int,
Inicials char(2) not null,
Nivell varchar(10),
Curs varchar(10),
Lletra varchar(5),
CONSTRAINT profe FOREIGN KEY (inicials)
REFERENCES Professors (inicials),
CONSTRAINT GrupNivell_pk FOREIGN KEY (Nivell, Curs, Lletra)
REFERENCES Grup (Nivell, Curs, Lletra)
);

1 Ответ

0 голосов
/ 15 ноября 2018

Это орфографическая ошибка, ваш стол называется Профессор, а ваш внешний ключ ссылается на Профессора.

Попробуйте это:

CREATE TABLE Docencia (
hores_totals int,
Inicials char(2) not null,
Nivell varchar(10),
Curs varchar(10),
Lletra varchar(5),
CONSTRAINT profe FOREIGN KEY (Inicials) REFERENCES Professor (Inicials),
CONSTRAINT GrupNivell_pk FOREIGN KEY (Nivell, Curs, Lletra) REFERENCES Grup (Nivell, Curs, Lletra)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...