如何获取多个主键的表格中仅某个主键不同的数据?

如图我想把settletype=‘m’的修改成‘a’,但是数据库保持主键重复,应该如何处理呢... 如图 我想把settletype=‘m’的修改成‘a’,但是数据库保持主键重复,应该如何处理呢 展开
 我来答
z12313721
2020-07-24 · 超过10用户采纳过TA的回答
知道答主
回答量:17
采纳率:100%
帮助的人:4.6万
展开全部
你知道数据库表中为什么有主键吗?
数据库表中的主键是用于唯一标识某一条记录的,本质上是一个唯一索引,但与唯一索引不同的是主键中不能包含Null。如果更新主键所包含的字段的值导致破坏了主键在整个表中的唯一性,则这个更新操作会失败。
和索引一样,主键也包含单列主键和复合主键,复合主键的存在通常都是与业务逻辑相关的。
针对你的场景,表中的主键是个复合主键,SettleType 是复合主键中的一个字段,如果把 SettleType 的值由 m 修改成 a,则可能导致主键重复,两个办法:
(1)可以事先检查这个更新是否会失败;
(2)编写存储过程,在存储过程中遍历表,先检查是否存在更新后的值,如果不存在,则进行更新,否则跳过。
更新主键还有一个潜在的风险,就是如果主键被其它表作为外键引用了,则也可能因为参照完整性被破坏而导致主键的更新操作失败。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式