http://hi.baidu.com/yanzhiyong/blog/item/14b3da8061d5b6d49023d9da.html
今天被外键给整的不行,删除记录时总是出现错误。。
DELETE 语句与 REFERENCE 约束"FK__reply__word_id__7E6CC920"冲突。
该冲突发生于数据库"guest",表"dbo.reply", column 'word_id'。
后来查看才知道:
外键取值规则:空值或参照的主键值。
(1)插入非空值时,如果主键表中没有这个值,则不能插入。
(2)更新时,不能改为主键表中没有的值。
(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
(4)更新主键记录时,同样有级联更新和拒绝执行的选择。
//备注 :
on delete cascade on update cascade(级联更新和删除)
create table reply
{
word_id int foreign key references guest(word_id) on delete cascade on update cascade
}
表 ,右建=== 修改表,右键 ===关系 ,打开外键关系
INSERT 和 UPDATE 规范类别
展开以显示有关该关系的“删除规则”和“更新规则”的信息。
- 删除规则
-
指定当数据库的最终用户尝试删除某一行,而该行包含外键关系所涉及的数据时所发生的情况。如果设置为:
-
无操作 显示一条错误信息,告知用户不允许执行该删除操作,DELETE 将被回滚。
-
级联 删除包含外键关系中所涉及的数据的所有行。
-
设置空 如果表的所有外键列都可接受空值,则将该值设置为空。仅适用于 SQL Server 2005。
-
设置默认值 如果表的所有外键列均已定义默认值,则将该值设置为列定义的默认值。仅适用于 SQL Server 2005。
-
- 更新规则
-
指定当数据库的用户尝试更新某一行,而该行包含外键关系所涉及的数据时所发生的情况。如果设置为:
-
无操作 显示一条错误信息,告知用户不允许执行该删除操作,DELETE 将被回滚。
-
级联 删除包含外键关系中所涉及的数据的所有行。
-
设置空 如果表的所有外键列都可接受空值,则将该值设置为空。仅适用于 SQL Server 2005。
-
设置默认值 如果表的所有外键列均已定义默认值,则将该值设置为列定义的默认值。仅适用于 SQL Server 2005。
-
出处: http://yelaiju.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。