日期:2014-05-17  浏览次数:20516 次

primary key 与 foreign key 的问题
一直想不懂,为什么定义了主键外键后就改变不了主表的数据!
例如A表的ID为主键,B表的ID参照A表的ID为外键,不是应该可以更改A表的ID吗?也有触发器,B表会随着A表的ID改变而改变
还会有冲突的!我知道是为了保持表的参照完整性,可跟随的更动不会破坏其完整性啊!
今天插不了图,用文字表达了,看得大家不舒服,请谅解

------解决方案--------------------
形成主外键关系后,修改数据时有两种约束方式
1 外键表有和主键对应的数据时,不允许修改主键表主键的值,
2 外键表有和主键对应的数据时,修改主键表主键的值时外键表上的外键值也自动改为相应的值
形成主外键关系后,删除数据时有两种约束方式
1 外键表有和主键对应的数据时,不允许删除主键表的值,
2 外键表有和主键对应的数据时,删除主键表主键的值时自动删除外键表上对应的数据
在外键关系那里可以设置
------解决方案--------------------
磊仔。long time no see !级联可以用触发器代替,但是没测试过性能,刚好我看到一篇级联删除的文章,你去看看吧。不过是英文的,不知道你看不看得懂,吃完饭我翻译一下丢我博客去。http://www.mssqltips.com/sqlservertip/2743/using-delete-cascade-option-for-foreign-keys/?utm_source=dailynewsletter&utm_medium=email&utm_content=headline&utm_campaign=2012731