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

请问,父表、子表如何提交更新
比如,客户表和订单表具有外键约束,订单表的客户编号引用客户表的客户编号。
对于父表、子表分层提交更新,如下两点我是明白的:

先提交父表的插入记录,后提交子表的插入记录----因为父表里面有的,子表里面才能有
先提交子表的删除记录,后提交父表的删除记录----因为如果子表还存在引用的话,父表是不能删除的


但,我不明白更改的提交:
无论是先提交父表还是先提交子表,源数据库都通不过的。因为,在源数据库中,也是存在外键约束的,如果先提交父表的更改,因为子表有引用(此时子表还没有更改),所以通不过;而如果先提交子表的更改的话,显然也是通不过的。


请问,该怎么提交对于数据修改的更新?


------解决方案--------------------
那你就写一个事务,更改父表数据的时候把父表的数据和子表的数据同时更改,这样就可以了。
------解决方案--------------------


存储过程解决吧。不要重复的执行一类型操作。
------解决方案--------------------
用触发器吧 给你个链接http://www.cnblogs.com/hoojo/archive/2011/07/20/2111316.html
------解决方案--------------------
SQL Server我要是没记错的话,你加外键约束时 有个Delete Update(更新和删除的规则)..你把那个设一下,应该可以满足你
------解决方案--------------------
先删除约束 更一个表的字段--> 更新另外一个表字段--> 重建约束
------解决方案--------------------
删除外键:alter table 表名称 drop constraint 外键的名称
建立外键:alter table 子表 add
consraint 外键的名称 foreign key(子表外键字段) references 主表(关联字段);


------解决方案--------------------
我感觉你的代码有问题或者数据库中的表有问题,关系表都是通过主键建立关系的,程序中你修改了表的主键。


所以 会出错。我也不知道啊 自我感觉