繁体   English   中英

Oracle IDENTITY 列与 PRIMARY KEY

[英]Oracle IDENTITY column versus PRIMARY KEY

无法确定是否需要在 Oracle 12.2c 中将IDENTITY列指定为PRIMARY KEY IDENTITY列是否会自动创建索引,例如PK 只是重复吗? 我相信你可以有一个IDENTITY列和单独的 PK,尽管我们没有这样做。

ID NUMBER AS IDENTITY PRIMARY KEY == ID NUMBER AS IDENTITY ?

IDENTITY列可以并且通常用作主键,但并非必须如此。

标识列对于代理主键列非常有用。 当您将新行插入标识列时,Oracle 会自动生成并将顺序值插入该列。

https://www.oracletutorial.com/oracle-basics/oracle-identity-column/

IDENTITY 列是否会自动创建索引,例如 PK?

不,标识列只是用顺序生成的数字自动填充的列。 您可以随心所欲地使用它,但典型的用途是作为合成主键。

它只是多余的吗?

不。

我相信你可以有一个 IDENTITY 列和单独的 PK

是的你可以。

虽然我们没有这样做。

好的,如果您的意思是除了身份列之外没有单独的 PK 在标识列上定义 PK约束将是一个好主意。

混合数据的逻辑和物理组织是一个常见的错误。

您成功混合了 3 个正交概念:

  • 逻辑: PRIMARY KEY约束
  • 物理: INDEX
  • 自动值生成: IDENTITY

IDENTITY 列是否会自动创建索引,例如 PK? 只是重复吗?

这些问题非常依赖于版本。 IDENTITY本身是在 Oracle 12.x 中引入的。

我相信你可以有一个 IDENTITY 列和单独的 PK,尽管我们没有这样做。

你在这里是对的。

自动值生成、逻辑约束和物理数据组织是相互正交的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM