有3个表 rptdata rptcell rptcol ,都有一个字段 rptcolid
在这3个表中,这个字段是相互约束的,如果单独写SQL更新语句会提示约束
大概要更新的语句是这样
update rptcell set rptcolid='95' where rptid='0707' and rptcolid='56'
update rptcol set rptcolid='95' where rptid='0707' and rptcolid='56'
update rptdata set rptcolid='95' where rptid='0707' and rptcolid='56'
其他2个表也是要更新这个字段,where条件也是一样
除了删除约束更新,是否有其他方法,比如一个SQL语句同时,更新这3个表的这个字段【rptcolid】。
希望大家帮帮忙,谢谢了
看上面的错误提示,rptcol是主表,rptcolid是主键,rptdata和rptcell都有关联到rptcol的外键rptcolid
有一个方法是在rptcol的外键关系里设置“更新规则”为级联,然后update rptcol的rptcolid字段,这个时候将会自动把rptcell和rptdata中对应的rptcolid字段自动更新
不过还是建议不要用可能会被更改字段作为主键/外键
级联更新不能解决?
1、要么干掉外键,要么满足约束。
最好别用触发器了~
图看不到呢,不过确实没有方法,一条语句的update不能同时更新多个表,不想这样的话,就只能删掉外键了。
不知道为啥,我对数据库的约束挺反感的。我一般都使用int类型的字段代表某个表的外键,这样可以避免好多级联上的问题。