如何用T-SQL语句满足先输入主键表中的数据,再输入外键表中的数据?

如题所述

我创建外键时,得到了这个错误,我对表和字段检查了又检查,始终没有发现问题出现在哪里,百度了很多下,终于找到了解决的办法,是我的主表的复合主键索引没有单独的建出来(就是两个复合主键中的一个主键被别的表作为了外键,那么这个主键就必须得单独建一个索引)。随后,我又对创建外键问题进行了一些简单的研究,发现以下情况都会导致这个错误:
1、两个字段的数据类型不一致。例如,一个是int(10),而另一个却是varchar(10)。你还要检查,是不是一个选择了无符号,而另一个没有选择。
2、主表字段不是主键,如果你不能把它设为主键,那么可以为其创建一个索引。
3、主表字段是复合主键的一部分,并且这个字段没有它自己的索引。如果是这个问题,那么就为这个字段创建一个单独的索引吧。
4、外键指定了删除时SET NULL,但是该字段被设置为NOT NULL。Mysql无法解决这个问题,你只能修改其中一个地方的设置了。
5、外键的名字重复了。一个数据库中外键名字必须是唯一的。试着添加一些随机字符看看能不能创建成功。
6、ALTER语句写错了,从表表名写错了,从表字段写错了,主表表名写错了,主表字段写错了。。。
如果你也遇到了同样的问题,经历以上步骤后,希望你的问题能够得到解决。如果你通过其他的办法解决了这一问题,也欢迎并感谢您写下评论。以供“后人”借鉴。
————————————————
版权声明:本文为CSDN博主「晴思梦语」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wdf521121/java/article/details/79236650
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-24
主键表正常insert就可以,外键表在insert时需要注意,作为外键一列insert的值,主键表中必须要有。本回答被网友采纳
相似回答