sql中update 语句与foreign key same table约束冲突是由于什么原因

 我来答
wangzhiqing999
2011-04-18 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3330万
展开全部
消息 547,级别 16,状态 1,服务器 HOME-BED592453C\SQLEXPRESS,第 1 行
DELETE 语句与 REFERENCE 约束"main_id_cons"冲突。该冲突发生于数据库"Stock",表"db
o.test_sub", column 'main_id'。
语句已终止。

产生这类信息的原因是,你创建了默认的外键约束。
默认的就是,为了保证数据的完整性,比如有父子关系的两表。
你必须先删除掉子表的数据,让父表的数据,没有子表数据的时候,才能删除。
目的是为了避免,子表中有太多的 孤儿数据。

如果想避免,可以加上 DELETE CASCADE / UPDATE CASCADE 之类的关键字。

DELETE CASCADE 意味着, 删除主表的数据时,联带着删除子表。
UPDATE CASCADE 意味着, 更新主表的主键数据时,联带着更新子表的外键数据。

参考资料: http://hi.baidu.com/wangzhiqing999/blog/item/969f70fa84e2873e5d600821.html

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式