Мой внешний ключ ограничения не работает в моей базе данных - PullRequest
0 голосов
/ 17 февраля 2020
create table students (StudentId int primary key not null);

create table records (
     RecordId int primary key not null,
     StudentId int not null,
     constraint fk foreign key(StudentId) references students(StudentId));

 insert into students values (201810696);
 Query OK, 1 row affected (0.120 sec)

 insert into records values (1011, 20181313);
 Query OK, 1 row affected (0.004 sec)

Почему он продолжает принимать значения, которых нет в таблице учеников ?? Я уже установил свой механизм хранения на innoDb для обеих моих таблиц в операциях phpmyadmin localhost

Кстати, я использую последнюю версию wampp и кодирование в cmd

1 Ответ

1 голос
/ 17 февраля 2020
create table students (StudentId int primary key not null);

create table records (RecordId int primary key not null, StudentId int not null, constraint fk 
foreign key(StudentId) references students(StudentId));

insert into records values(1, 1);

Я пробовал это в mysql 5.6, и вставка не удалась:

Cannot add or update a child row: a foreign key constraint fails (`db_9_cd6353`.`records`, CONSTRAINT `fk` FOREIGN KEY (`StudentId`) REFERENCES `students` (`StudentId`))

У вас должны быть соответствующие данные в Первичной таблице, которые вы пропустили.

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