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/
混合逻辑和物理数据组织是一个常见的错误。
您成功混合了 3 个正交概念:
- 逻辑:
PRIMARY KEY
约束
- 物理:
INDEX
- 自动生成值:
IDENTITY
列
Does an IDENTITY column automatically create an index, like a PK? Is it just being redudant?
这些问题非常依赖于版本。 IDENTITY
本身是在 Oracle 12.x.
中引入的
I do believe you can have an IDENTITY column and separate PK, though we are not doing that.
你是对的。
自动值生成、逻辑约束和物理数据组织相互正交。
Does an IDENTITY column automatically create an index, like a PK?
没有。标识列只是用顺序生成的数字自动填充的列。您可以随意使用它,但典型用途是作为合成主键。
Is it just being redundant?
没有
I do believe you can have an IDENTITY column and separate PK
是的,你可以。
though we are not doing that.
好吧,如果你的意思是除了标识列之外你没有单独的 PK 列。在标识列上定义 PK 约束 是个好主意。
无法确定是否需要在 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/
混合逻辑和物理数据组织是一个常见的错误。
您成功混合了 3 个正交概念:
- 逻辑:
PRIMARY KEY
约束 - 物理:
INDEX
- 自动生成值:
IDENTITY
列
Does an IDENTITY column automatically create an index, like a PK? Is it just being redudant?
这些问题非常依赖于版本。 IDENTITY
本身是在 Oracle 12.x.
I do believe you can have an IDENTITY column and separate PK, though we are not doing that.
你是对的。
自动值生成、逻辑约束和物理数据组织相互正交。
Does an IDENTITY column automatically create an index, like a PK?
没有。标识列只是用顺序生成的数字自动填充的列。您可以随意使用它,但典型用途是作为合成主键。
Is it just being redundant?
没有
I do believe you can have an IDENTITY column and separate PK
是的,你可以。
though we are not doing that.
好吧,如果你的意思是除了标识列之外你没有单独的 PK 列。在标识列上定义 PK 约束 是个好主意。