--我看PHP & MySQL实例精解 这本书上有论谈这篇.--看看他的贴子表结构create table wrox_forum_message(
message_id bigint unsigned not null auto_increment,
parent_message_id bigint unsigned not null,
forum_id int unsigned not null,
subject varchar(100) not null,
message_text text not null, primary key(message_id),
foreign key (parent_message_id) references wrox_forum_message(message_id), --跪议的外键
foreign key (forum_id) references wrox_forum(forum_id),
foreign key (user_id) references wrox_users(user_id)
);--问题就在 parent_message_id上,这个自身表引用自身的主键做为外键。
--可是那个老外作者都出书了,书是还解释了特别说明: wrox_forum_message 中中parent_message_id
--引用来实现贴子组织,当 parent_message_id 为0表示 原始贴,否则就为回复的贴子问题时,我根本添加不进去数据,因为 parent_message_id 是外键,必须要一个存在的主键才可以
就好像就是鸡与蛋的关系了。实在搞不懂那个老外作者是怎么写进入的,他的代码没错,写的没错
就是我调试的时候不得行,他书说起很正常的。我靠,这问题出在哪里呢?添加时总会提示这个错误。纠结了很久没解决....
update database failed.Cannot add or update a child row: a foreign key constraint fails (`wrox_databases/wrox_forum_message`, CONSTRAINT `wrox_forum_message_ibfk_1` FOREIGN KEY (`PARENT_MESSAGE_ID`) REFERENCES `wrox_forum_message` (`MESSAGE_ID`))
很回答者忽略这两个外键,在这个问题没有用到这两个.
foreign key (forum_id) references wrox_forum(forum_id),
foreign key (user_id) references wrox_users(user_id)主要问题是
foreign key (parent_message_id) references wrox_forum_message(message_id);
这样搞起以后,如何 才可以添加进数据而不会出现外键约束失败!!
等高人释疑。
InnoDB引擎才会检查外键