为什么Mysql的外键不起作用了

为什么Mysql的外键不起作用了,第1张

那就需要先删除主表里的记录,再删除子表里的记录。比如有如下数据:A表uid name1张三2李四B表uid 科目 分数1 数学 901 语文 802 数学 702 语文 60现在要删除A表里张三的记录,如果有外键,直接delete from A where uid=1这样是删除不了的。所以要先删除B表里uid=1的记录再执行上边这句delete from B where uid=1然后再执行delete from A where uid=1就可以了

楼主你要知道,建外键的作用是使用外键所引用的表来约束所要用到该外键的表!

明白了外键的特性,再来看看这个问题.既然表都建起来了,那么问题肯定不是出在建表结构或者引用上。异常提示说违反约束规则.

分析你的问题,问题出在:

1.在你的航班表中并没有数据,这时候你往机票表中插入数据的时候并没有外键所参考的主键给你引用,这时候因为找不到所要参考的引用,约束规则生效,使你在没有主键参考的情况下不能往表中插入数据.

2.问题分析同上面,但是不同的是航班表中有数据,但是你机票表中插入数据的时候,外键的值并没有在航班表中存在,同样也会报相同的异常.

楼主在Java区也有个相同的问题。。。

需要搞清外键的概念:如tbl_a(sid)的外键是tbl_b(id)

sid中的数据必须全部在id中有与之对应的;

id和sid都必须是索引包括(primary key,unique key)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7586760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存