Oracle外來鍵需要建索引嗎?

2022-05-06 10:00:07 字數 365 閱讀 4373

關於oracle中的外來鍵,首先要說明一下。

1. 除非已定義了父表主鍵或唯一鍵約束,否則oracle將不允許建立子表的外來鍵約束。

2. 在定義外來鍵約束時,oracle不會自動建立索引,所以必須手動在與外來鍵約束相關的列上建立索引。

所以我們這裡要研究的是否需要在子表中建立索引,因為父表中對應的列是一定有索引的。

如果子表中的外來鍵不建立索引,將導致兩個問題。

1. 影響效能。 如果子表外來鍵沒有建立索引,那麼當父表查詢關聯子表時,子表將進行全表掃瞄。

2. 影響併發。 如果子表外來鍵沒有建立索引,那麼在子表進行dml操作時,將會鎖住整個父表。

所以,我們應該盡量考慮在外鍵上面建立索引。

sql外來鍵需要輸入嗎 SQL外來鍵

在本教程中,將學習sql外來鍵以及如何建立foreign key約束以強制表之間的關係。1.sql外來鍵約束簡介 外來鍵是一列或一組列,用於強制兩個表中的資料之間的鏈結。在外鍵引用中,第乙個表的主鍵列 或多個列 由第二個表的列 或列 引用。第二個表的列 或列 成為外來鍵。在建立或更改表時,可以使用f...

oracle建表 建主鍵 外來鍵基本語法

建立 語法 create table 表名 欄位名1 字段型別 長度 是否為空,欄位名2 字段型別 是否為空 增加主鍵 alter table 表名 add constraint 主鍵名 primary key 欄位名1 增加外來鍵 alter table 表名 add constraint 外鍵名...

oracle不同schema之間建外鍵

需要許可權 grant references on test sys to user 1 or grant all on test sys to user 1 測試 sys使用者下 sql create user user 1 identified by user 1 使用者已建立。sql gran...