Mysql ошибка с преобразованием из myISAM в innodb - PullRequest
0 голосов
/ 10 апреля 2011

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

   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 в индексах, а затем добавил отношение User-> ID для userID и интересов-> ID для интересаID

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

Любые идеи ... действительно нужна помощь!

1 Ответ

1 голос
/ 10 апреля 2011

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

...