akp*_*akp 29 database oracle primary-key
我们可以更新表的主键值吗?
Vin*_*rat 38
人们普遍认为主键应该是不可变的(或者尽可能稳定,因为不能在DB中强制执行不变性).虽然没有任何东西可以阻止您更新主键(完整性约束除外),但这可能不是一个好主意:
从性能的角度来看:
其他考虑:
总之,在设计过程中,使用代理键代替应该不会改变的自然主键通常更安全 - 但最终可能需要更新,因为需求更改甚至数据输入错误.
如果您必须使用子表更新主键,请参阅Tom Kyte的这篇文章以获得解决方案.
nvo*_*gel 10
主键属性与表的任何其他属性一样可更新.稳定性通常是关键的理想属性,但绝对不是绝对要求.如果从业务角度更新密钥是有意义的,那么没有根本原因你不应该这样做.
Ric*_*ard 6
你可以只要
小智 6
从关系数据库理论的角度来看,更新表的主键绝对没有问题,前提是主键之间没有重复,并且您不尝试在任何主键中放置 NULL 值关键列。
Man*_*dan 2
简短的回答:是的,可以。当然,您必须确保新值与任何现有值都不匹配,并且满足其他约束(废话)。
你到底想做什么?
归档时间:
15 年,1 月 前
查看次数:
93290 次
最近记录:
9 年,3 月 前