日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle主键与索引,oracle 主键 \索引

發布時間:2023/12/31 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle主键与索引,oracle 主键 \索引 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在oracle中,我們創建一個主鍵,則同時自動創建了一個同名的唯一索引;刪除主鍵,則主鍵約束和對應的唯一索引都刪除了。這是我們經常見到的現象。

發出一個創建主鍵的sql,oracle其實執行了兩步:創建主鍵約束、創建/關聯 唯一索引。步驟是這樣的:

創建主鍵約束時,檢查該主鍵字段上是否已經存在唯一索引。若不存在,則自動創建同名唯一索引;若存在,則直接創建主鍵約束,并將該約束和已經存在的唯一索引對應上。

刪除主鍵約束時,可以決定是否保留對應的索引;刪除唯一索引時,若存在對應的主鍵約束,則不能刪除。

總之,存在主鍵約束,則肯定存在與之對應的唯一索引,而存在唯一索引,不一定對應著有主鍵約束。

下面我們驗證一下:

SQL> create table test_pri(a number(1), b number(1));

表已創建。

--1.創建主鍵,則自動創建同名唯一索引

--1.1創建主鍵,主鍵約束和唯一索引同時創建

SQL> alter table test_pri add constraint pk_test_pri_a primary key(a);

表已更改。

SQL> select CONSTRAINT_NAME, TABLE_NAME, INDEX_NAME

2? from user_constraints where table_name = 'TEST_PRI';

CONSTRAINT_NAME?? TABLE_NAME?? INDEX_NAME

----------------- ------------ -------------

PK_TEST_PRI_A???? TEST_PRI???? PK_TEST_PRI_A

SQL> select INDEX_NAME, INDEX_TYPE, TABLE_NAME, UNIQUENESS

2? from user_indexes where table_name = 'TEST_PRI';

INDEX_NAME?????? INDEX_TYPE?? TABLE_NAME?? UNIQUENES

---------------- ------------ ------------ ---------

PK_TEST_PRI_A??? NORMAL?????? TEST_PRI???? UNIQUE

--1.2 刪除主鍵,主鍵約束和對應的唯一索引都刪除了

SQL> alter table test_pri drop constraint pk_test_pri_a;

表已更改。

SQL> select CONSTRAINT_NAME, TABLE_NAME, INDEX_NAME

2? from user_constraints where table_name = 'TEST_PRI';

未選定行

SQL> select INDEX_NAME, INDEX_TYPE, TAB

總結

以上是生活随笔為你收集整理的oracle主键与索引,oracle 主键 \索引的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。