+ -
当前位置:首页 → 问答吧 → mysql 外键约束的问题

mysql 外键约束的问题

时间:2011-08-23

来源:互联网

有这样一个问题,先在我有A表为主表,然后新建一个B表,B表中的type引用自A表。但是B表中的type不是必输项。

  现在是我设置了外键,每次B表中插入新数据的时候,都提示Type这个字段必须输入。
   
  要怎么解决呢?

作者: jianglisang   发布时间: 2011-08-23

SET foreign_key_checks = 0;
再执行

作者: WWWWA   发布时间: 2011-08-23

恩 我想问下这句话什么意思来的。

作者: jianglisang   发布时间: 2011-08-23

是不是我所有的外键约束都不管用了呢

作者: jianglisang   发布时间: 2011-08-23

引用 3 楼 jianglisang 的回复:
是不是我所有的外键约束都不管用了呢

是,执行完后
SET foreign_key_checks = 1;

作者: WWWWA   发布时间: 2011-08-23

明白了 但是现在问题是 附表中出现了主表中没有的数据,会不会造成什么错误,那些外键约束还会管用么?

作者: jianglisang   发布时间: 2011-08-23

你的顺序不对,你应该先输入主表。
如果说“但是B表中的type不是必输项。” 则这个就不应该是外键了。

作者: ACMAIN_CHM   发布时间: 2011-08-23

引用 5 楼 jianglisang 的回复:
明白了 但是现在问题是 附表中出现了主表中没有的数据,会不会造成什么错误,那些外键约束还会管用么?


现在问题是B表中的Type如果不为空,则Type一定引用在A表,如果为空就可以不输。

就跟学生课程一样,一个学生选择的课程必须是课程表里面的,也可以不选择其中一门课程。

作者: jianglisang   发布时间: 2011-08-23

这是你页面应该提示吧

作者: rucypli   发布时间: 2011-08-23