簡體   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