修改带有外码约束的字段值

benbenRH 2009-04-14 01:04:52
如题,详细描述:表student、class,
其中,表student中有个字段为stuClass为学生班给代码为
表class的主键[班级代码];
现在改变表class中此字段,如果这个字面在表student中有
用到就会报错;
请问这个问题怎么解决,[不要说去掉约束]

谢谢~~~~~~~~~~~~~

百度的答案如下:

1。看要不要同步修改,需要同步更新就用级联更新,不需要就去掉约束就可以了

2。可以先将class表的数据存入新表然后删除class表 再修改student表在将新表和student表建立约束

总觉得这样好像不是很好,很费时间,大家是怎么做的啊?
...全文
159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Steve 2009-04-14
  • 打赏
  • 举报
回复
update student set stuClass='新代码' where stuClass='旧代码';
update class set 班级代码='新代码' where 班级代码='旧代码';
Steve 2009-04-14
  • 打赏
  • 举报
回复
首先这个关联在设计上是有问题的.
受RoR的影响,现在流行的设计是每个表有且仅有一个主键(Serial),这个值永不更改.
比如class这个表,它的主键仅有一个class_id,那么学生表和这个class_id关联,
修改class_code或者class_name不影响student.

如果你非要保留这个关联,那只有更新class以前检查student表,先把student对应的
stuClass都改掉.
benbenRH 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cndotaci 的回复:]
先把约束删掉,改完后再加上
[/Quote]
用C#怎么删啊,能给几行代码看看吗》?谢谢
云想慕尘 2009-04-14
  • 打赏
  • 举报
回复
先把约束删掉,改完后再加上

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧