|
|
1
9
表不需要主键。表没有显式键对数据库没有任何影响,因为数据库中的每一行都有一个隐式的唯一数据点,Oracle将其用于存储和某些内部引用。这是rowid伪列。rowid是唯一标识数据库中每一行的一段数据,但有一些明显的例外。 我的数据库上的以下查询返回显示的数据: select rowid from user$ where rownum <= 5; AAAAAKAABAAAAFlAAC AAAAAKAABAAAAFlAAD AAAAAKAABAAAAFiAAD AAAAAKAABAAAAFlAAE AAAAAKAABAAAAFlAAF 严格来说,没有必要把钥匙放在桌子上。我刚才查询的oracle10g数据库有569个系统表,它们没有主键或唯一键。dba和开发人员决定如何在数据库表上创建密钥。我的项目中的开发人员总是创建主键,而不管它们是否有用或健全。作为dba,我只在有意义的地方创建键。 谨致问候, 作品 |
|
|
2
6
那你为什么要有一个序列,如果你从来没有用过呢? 每个表都必须具有唯一标识记录的内容 ,它不必是一个人工增量序列(又称a surrogate key ,可能是 natural key )中。总有一些查询是通过某种唯一键(候选键)进行访问的,这意味着您肯定需要一个索引,您也可以使索引唯一。 对所有持久(非临时)表强制pk约束还有其他好处:
|
|
|
3
3
在我看来,如果没有唯一的密钥,就不能有外键,因此无法将表链接到其他表。事后更改这一点并不容易,因为访问此表的所有代码都可能受到影响,可能是由于移位引用而根本无法工作,或者是由于执行的方式不同。此外,我相信我们在uni(但这是5年多以前的事了)了解到,独特的索引对性能更好,因为行是不考虑其内容而分段的。 |
|
|
blogger13 · 视频租赁店数据库的规范化 1 年前 |
|
|
ì¤ì¤í · 为什么LEFT INNER JOIN被弃用? 1 年前 |
|
|
relatively_random · 确保两个表之间一致的共同参考 1 年前 |
|
|
Grenish Rai · Firestore错误“用户文档不存在” 2 年前 |
|
|
Saijo-Shi · PLpgsql中的更新触发器 2 年前 |
|
Dante · Django::配置不当:池不支持持久连接 2 年前 |
|
YouLocalRUser · 删除重复行,保留第一行 2 年前 |