sql约束问题,求各位大侠解释..

[复制链接]
查看11 | 回复2 | 2012-8-10 22:15:15 | 显示全部楼层 |阅读模式
因为删除C2=1时会先删除c1=1的子记录,所以先删除完c1=1的子记录后,表t_xx就没有c2=1的值了,但删除C2=2时,会先删除C1=2的子记录,但子表(t_xx)里还有3,2\4,2这两条记录,所以删除c2=2时就会报错了,不知道你听明白了没?大体意思就是删除操作时,是先删除第一列的值,再删除第二列的值这个顺序...
回复

使用道具 举报

千问 | 2012-8-10 22:15:15 | 显示全部楼层
你举的例子是规范的,如果需要两个字段都要关联,应该做复合主键和复合外键。下面说一下为什么C2=2时出现违反约束错误:当c2=1、3、4都能删除的原因是,通过C1来关联,且C1有on delete cascade选项,还有表t_xx中c2是1、3、4只有一行。当c2=2时,t_xx表中有3行c2是2的,除了两个表的(2,2)可以关联,其他2行要通过...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行