Ошибка Mysql при преобразовании из MyISAM в innodb

#php #mysql #innodb

#php #mysql #innodb

Вопрос:

эй, ребята, я получаю эту ошибку.

    Error 1452 : Cannot add or update a child row: a foreign key constraint fails (`s2794971db/ProfileInterests`, CONSTRAINT `ProfileInterests_ibfk_2` FOREIGN KEY (`InterestID`) REFERENCES `Interests` (`ID`))
  

Я меняю свои таблицы с MyISAM на innodb … обнаружил, что мне нужно, чтобы удаление было проще.

У меня были проблемы с этим, поэтому я удалил таблицу, с которой мне нужно было создать отношения.

Затем я сделал это снова

Изначально у меня было

 create table if not exists Users (
  ID int not null auto_increment primary key,
  FirstName varchar(40) not null,
  LastName varchar(40) not null,
  UserName varchar(40) not null,
  UserEmail varchar(40) not null,
  UserDOB timestamp not null,
  UserJoin datetime not null
);

create table if not exists Interests(
    ID int not null auto_increment primary key,
    Interests varchar(40) not null
);

create table if not exists ProfileInterests (
    userID int not null References Users(ID),
    InterestID int not null References Interests(ID),
    MiddleID int not null auto_increment primary key
);
  

но затем я удалил последнюю таблицу и создал ее

 create table if not exists ProfileInterests (
    userID int not null,
    InterestID int not null,
    MiddleID int not null auto_increment primary key
);
  

и затем я ввел userId и InterestID в index, а затем добавил отношение User-> ID для userId и interests-> ID для interestID

ошибка возникает, когда я пытаюсь ввести данные в форму с помощью php.

Есть идеи … действительно нужна помощь!

Ответ №1:

Очевидно, вы пытаетесь вставить запись, в ProfileInterests для которой нет соответствующей записи в Interests таблице. Посмотрите на точный запрос insert и убедитесь, что вы предоставляете допустимое значение для каждого поля в таблице, которое является частью отношения внешнего ключа.