2011-04-10 74 views
0

嘿家伙,我得到这个错误。从myISAM转换到innodb的Mysql错误

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 
); 

,然后我做了用户ID和InterestID进入指数的和然后我添加了关系User-> ID为userID和interest-> ID为interestID

当我试图通过php表单输入数据时发生错误。

任何想法...真的需要一些帮助!

回答

1

很显然,您正尝试在表中没有匹配记录的ProfileInterests中插入一条记录。查看确切的插入查询,并检查是否为表中的每个字段提供了一个有效值,这是外键关系的一部分。