Oracle IDENTITY列与PRIMARY KEY

问题描述 投票:1回答:3

查找有关在Oracle 12.2c中是否需要将IDENTITY列指定为PRIMARY KEY的确定性问题。 IDENTITY列是否会像PK一样自动创建索引?它只是多余的吗?我确实相信您可以拥有IDENTITY列和单独的PK,尽管我们没有这样做。

ID NUMBER AS IDENTITY PRIMARY KEY == ID NUMBER AS IDENTITY ?
sql oracle ddl
3个回答
1
投票

IDENTITY列可以并且通常用作主键,但不一定必须。

身份列对于代理主键列非常有用。当您在身份列中插入新行时,Oracle会自动生成并在该列中插入一个顺序值。

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


0
投票

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

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

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

IDENTITY列是否会像PK一样自动创建索引?它只是多余的吗?

这些问题与版本密切相关。 IDENTITY本身是在Oracle 12.x中引入的。

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

您在这里是正确的。

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


0
投票

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

没有身份列只是顺序ID生成器。

这只是多余吗?

编号

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

是,可以。它们是无关的。

尽管我们没有这样做。

好。但是您可能应该。

© www.soinside.com 2019 - 2024. All rights reserved.