关于mysql中设外键的问题,请各位高手帮忙看看!

altertableexpress_deliveryaddconstraintidFOREIGNkey(id)referencesdelivery(id);我用这个语句建... alter table express_delivery add constraint id FOREIGN key(id) references delivery(id);我用这个语句建立外键时,它会出现一个提示框,内容是“SQL执行错误#1005,从数据库的响应:can't create table ',\liulinf\#sql-da8_4/frm' (errno:121)”这是错误框提示的内容,因为我前面用sql语句建过表,有一次它提示建过表不成功,出来的就是这框,但后来建表成功了,现在我建外键,它又出来了,关键是我只有上面的建外键的语句,没有建表语句,它为什么还是提示这样的错误呢,是怎么回事,高手们帮忙看下啊,谢谢! 展开
 我来答
百度网友a974616
2011-01-04 · TA获得超过2716个赞
知道小有建树答主
回答量:1719
采纳率:0%
帮助的人:1093万
展开全部
楼主你要知道,建外键的作用是使用外键所引用的表来约束所要用到该外键的表!
明白了外键的特性,再来看看这个问题.既然表都建起来了,那么问题肯定不是出在建表结构或者引用上。异常提示说违反约束规则.
分析你的问题,问题出在:
1.在你的航班表中并没有数据,这时候你往机票表中插入数据的时候并没有外键所参考的主键给你引用,这时候因为找不到所要参考的引用,约束规则生效,使你在没有主键参考的情况下不能往表中插入数据.
2.问题分析同上面,但是不同的是航班表中有数据,但是你机票表中插入数据的时候,外键的值并没有在航班表中存在,同样也会报相同的异常.

楼主在Java区也有个相同的问题。。。
百度网友7c6dd97
2010-12-23
知道答主
回答量:36
采纳率:0%
帮助的人:22.6万
展开全部
你试下吧那个字段删了 然后从新插入
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式