日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
oracle怎么主鍵約束,oracle主鍵約束導(dǎo)入導(dǎo)出

oracle的主鍵和索引的關(guān)系是什么?

在oracle中,我們創(chuàng)建一個(gè)主鍵,則同時(shí)自動(dòng)創(chuàng)建了一個(gè)同名的唯一索引;刪除主鍵,則主鍵約束和對(duì)應(yīng)的唯一索引都刪除了。這是我們經(jīng)常見到的現(xiàn)象。\x0d\x0a \x0d\x0a發(fā)出一個(gè)創(chuàng)建主鍵的sql,oracle其實(shí)執(zhí)行了兩步:創(chuàng)建主鍵約束、創(chuàng)建/關(guān)聯(lián) 唯一索引。步驟是這樣的:\x0d\x0a創(chuàng)建主鍵約束時(shí),檢查該主鍵字段上是否已經(jīng)存在唯一索引。若不存在,則自動(dòng)創(chuàng)建同名唯一索引;若存在,則直接創(chuàng)建主鍵約束,并將該約束和已經(jīng)存在的唯一索引對(duì)應(yīng)上。 \x0d\x0a刪除主鍵約束時(shí),可以決定是否保留對(duì)應(yīng)的索引;刪除唯一索引時(shí),若存在對(duì)應(yīng)的主鍵約束,則不能刪除。\x0d\x0a \x0d\x0a總之,存在主鍵約束,則肯定存在與之對(duì)應(yīng)的唯一索引,而存在唯一索引,不一定對(duì)應(yīng)著有主鍵約束。\x0d\x0a \x0d\x0a下面我們驗(yàn)證一下:\x0d\x0a \x0d\x0aSQL create table test_pri(a number(1), b number(1));\x0d\x0a \x0d\x0a表已創(chuàng)建。\x0d\x0a \x0d\x0a--1.創(chuàng)建主鍵,則自動(dòng)創(chuàng)建同名唯一索引\x0d\x0a--1.1創(chuàng)建主鍵,主鍵約束和唯一索引同時(shí)創(chuàng)建\x0d\x0aSQL alter table test_pri add constraint pk_test_pri_a primary key(a);\x0d\x0a \x0d\x0a表已更改。\x0d\x0a\x0d\x0aSQL select CONSTRAINT_NAME, TABLE_NAME, INDEX_NAME\x0d\x0a 2 from user_constraints where table_name = 'TEST_PRI';\x0d\x0a \x0d\x0aCONSTRAINT_NAME TABLE_NAME INDEX_NAME \x0d\x0a----------------- ------------ -------------\x0d\x0aPK_TEST_PRI_A TEST_PRI PK_TEST_PRI_A\x0d\x0a \x0d\x0aSQL select INDEX_NAME, INDEX_TYPE, TABLE_NAME, UNIQUENESS\x0d\x0a 2 from user_indexes where table_name = 'TEST_PRI';\x0d\x0a \x0d\x0aINDEX_NAME INDEX_TYPE TABLE_NAME UNIQUENES\x0d\x0a---------------- ------------ ------------ ---------\x0d\x0aPK_TEST_PRI_A NORMAL TEST_PRI UNIQUE\x0d\x0a \x0d\x0a--1.2 刪除主鍵,主鍵約束和對(duì)應(yīng)的唯一索引都刪除了\x0d\x0aSQL alter table test_pri drop constraint pk_test_pri_a;\x0d\x0a \x0d\x0a表已更改。\x0d\x0a \x0d\x0aSQL select CONSTRAINT_NAME, TABLE_NAME, INDEX_NAME\x0d\x0a 2 from user_constraints where table_name = 'TEST_PRI';\x0d\x0a \x0d\x0a未選定行\(zhòng)x0d\x0a \x0d\x0aSQL select INDEX_NAME, INDEX_TYPE, TABLE_NAME, UNIQUENESS\x0d\x0a 2 from user_indexes where table_name = 'TEST_PRI';\x0d\x0a \x0d\x0a未選定行\(zhòng)x0d\x0a \x0d\x0a--1.3其實(shí)刪除主鍵時(shí)可以選擇保留索引的\x0d\x0aSQL alter table test_pri add constraint pk_test_pri_a primary key(a);\x0d\x0a \x0d\x0a表已更改。\x0d\x0a \x0d\x0aSQL alter table test_pri drop constraint pk_test_pri_a keep index;\x0d\x0a \x0d\x0a表已更改。\x0d\x0a \x0d\x0aSQL select CONSTRAINT_NAME, TABLE_NAME, INDEX_NAME\x0d\x0a 2 from user_constraints where table_name = 'TEST_PRI';\x0d\x0a \x0d\x0a未選定行\(zhòng)x0d\x0a \x0d\x0aSQL select INDEX_NAME, INDEX_TYPE, TABLE_NAME, UNIQUENESS\x0d\x0a 2 from user_indexes where table_name = 'TEST_PRI';\x0d\x0a \x0d\x0aINDEX_NAME INDEX_TYPE TABLE_NAME UNIQUENES\x0d\x0a--------------- ----------- ----------- ---------\x0d\x0aPK_TEST_PRI_A NORMAL TEST_PRI UNIQUE\x0d\x0a\x0d\x0a--2.在存在唯一索引的列上創(chuàng)建主鍵,則只創(chuàng)建主鍵約束,同時(shí)將該約束與已有唯一索引關(guān)聯(lián)上(名稱可以不一致)\x0d\x0aSQL drop index pk_test_pri_a;\x0d\x0a \x0d\x0a索引已丟棄。\x0d\x0a \x0d\x0a--2.1 先創(chuàng)建唯一索引,再創(chuàng)建主鍵,名稱可以不一致\x0d\x0aSQL create unique index pk_test_pri_a on test_pri(a);\x0d\x0a \x0d\x0a索引已創(chuàng)建。\x0d\x0a \x0d\x0aSQL alter table test_pri add constraint pk_test_pri primary key(a);\x0d\x0a \x0d\x0a表已更改。\x0d\x0a \x0d\x0aSQL select INDEX_NAME, INDEX_TYPE, TABLE_NAME, UNIQUENESS\x0d\x0a 2 from user_indexes where table_name = 'TEST_PRI';\x0d\x0a \x0d\x0aINDEX_NAME INDEX_TYPE TABLE_NAME UNIQUENES\x0d\x0a--------------- ----------- ------------ ---------\x0d\x0aPK_TEST_PRI_A NORMAL TEST_PRI UNIQUE\x0d\x0a \x0d\x0aSQL select CONSTRAINT_NAME, TABLE_NAME, INDEX_NAME\x0d\x0a 2 from user_constraints where table_name = 'TEST_PRI';\x0d\x0a \x0d\x0aCONSTRAINT_NAME TABLE_NAME INDEX_NAME\x0d\x0a------------------ ------------ -------------\x0d\x0aPK_TEST_PRI TEST_PRI PK_TEST_PRI_A\x0d\x0a \x0d\x0a--2.2 不可刪除存在主鍵約束的唯一索引\x0d\x0aSQL drop index PK_TEST_PRI_A;\x0d\x0adrop index PK_TEST_PRI_A\x0d\x0a *\x0d\x0aERROR 位于第 1 行:\x0d\x0aORA-02429: 無法刪除用于強(qiáng)制唯一/主鍵的索引\x0d\x0a \x0d\x0a--2.3雖然兩者名稱不一致,但也是關(guān)聯(lián)在一塊的:刪除約束,則對(duì)應(yīng)的索引同時(shí)刪除\x0d\x0aSQL alter table test_pri drop constraint pk_test_pri; \x0d\x0a \x0d\x0a表已更改。\x0d\x0a \x0d\x0aSQL select INDEX_NAME, INDEX_TYPE, TABLE_NAME, UNIQUENESS\x0d\x0a 2 from user_indexes where table_name = 'TEST_PRI';\x0d\x0a \x0d\x0a未選定行\(zhòng)x0d\x0a \x0d\x0aSQL select CONSTRAINT_NAME, TABLE_NAME, INDEX_NAME\x0d\x0a 2 from user_constraints where table_name = 'TEST_PRI';\x0d\x0a \x0d\x0a未選定行\(zhòng)x0d\x0a \x0d\x0aSQL

成都創(chuàng)新互聯(lián)公司是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),網(wǎng)站空間、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,德陽機(jī)房服務(wù)器托管,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國(guó)大陸、港澳臺(tái)以及歐美等多個(gè)國(guó)家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。

ORACLE 更改主鍵怎么改?

1、首先應(yīng)該刪除已有的主鍵約束\x0d\x0a ①若已知道該主鍵命名\x0d\x0a\x0d\x0a alter table 表名 drop constraint 主鍵名;\x0d\x0a\x0d\x0a ②若不知道朱建命名\x0d\x0a\x0d\x0a SELECT * from user_cons_columns c where c.table_name = '表名';\x0d\x0a\x0d\x0a 找到主鍵字段column對(duì)應(yīng)的主鍵名,再執(zhí)行①\x0d\x0a\x0d\x0a2、增加新的主鍵約束\x0d\x0a alter table 表名 add constraint 主鍵名 primary key(字段名);

Oracle查看表索引、主鍵、外鍵、約束

查看表索引、主鍵、外鍵、約束

(包括索引名,類型,構(gòu)成列)

SELECT T.*, I.INDEX_TYPE

FROM USER_IND_COLUMNS T,USER_INDEXES I

WHERE T.INDEX_NAME = I.INDEX_NAME

AND T.TABLE_NAME = I.TABLE_NAME

AND T.TABLE_NAME = 'ORG_DLF' ----指定表

AND T.TABLE_OWNER= 'ODSRPT_SIT2'; ----指定用戶

(包括名稱,構(gòu)成列)

SELECT CU.*

FROM DBA_CONS_COLUMNS CU, DBA_CONSTRAINTS AU

WHERE CU.CONSTRAINT_NAME = AU.CONSTRAINT_NAME

AND AU.CONSTRAINT_TYPE = 'P'

AND AU.TABLE_NAME = 'LOAN_APPLICATION_FEE' -----指定表名

AND CU.OWNER='ODSRPT_SIT2'; -----指定用戶名

(包括表名稱,構(gòu)成列)

SELECT CU.COLUMN_NAME,AU.TABLE_NAME

FROM DBA_CONS_COLUMNS CU, DBA_CONSTRAINTS AU

WHERE CU.CONSTRAINT_NAME = AU.CONSTRAINT_NAME

AND AU.CONSTRAINT_TYPE = 'U'

AND AU.OWNER='RPT_UAT2' -----指定用戶名

AND AU.TABLE_NAME = 表名 ; -----指定表名

Select a.Owner 外鍵擁有者,

a.Table_Name 外鍵表,

c.Column_Name 外鍵列,

b.Owner 主鍵擁有者,

b.Table_Name 主鍵表,

d.Column_Name 主鍵列,

c.Constraint_Name 外鍵名,

d.Constraint_Name 主鍵名

From User_Constraints a,

 user_Constraints b,

user_Cons_Columns c, --外鍵表

user_Cons_Columns d --主鍵表

Where a.r_Constraint_Name = b.Constraint_Name

And a.Constraint_Type = 'R'

And b.Constraint_Type = 'P'

And a.r_Owner = b.Owner

And a.Constraint_Name = c.Constraint_Name

And b.Constraint_Name = d.Constraint_Name

And a.Owner = c.Owner

And a.Table_Name = c.Table_Name

And b.Owner = d.Owner

And b.Table_Name = d.Table_Name;

Oracle如何添加主鍵約束

工具/材料

SQL Developer

01

首先打開SQL Developer軟件,找一個(gè)沒有主鍵約束的表,如下圖所示

02

然后我們新建一個(gè)查詢,在界面中輸入如下的約束修改語句,如下圖所示,主要通過add constranint來添加約束

03

編寫完約束添加語句以后,點(diǎn)擊工具欄中的執(zhí)行按鈕,如下圖所示,如果輸出欄顯示已變更則證明主鍵約束創(chuàng)建成果

04

然后我們進(jìn)入STUDENT表的約束添加頁中可以看到,我們加的主鍵約束已經(jīng)添加進(jìn)去了,如下圖所示

05

另外,創(chuàng)建表的時(shí)候可以直接添加主鍵約束,如下圖所示,直接在表創(chuàng)建語句中添加constraint即可

06

表創(chuàng)建完以后,記得在左側(cè)刷新數(shù)據(jù)庫信息,如下圖所示,因?yàn)槟銊?chuàng)建的信息不刷新的話不會(huì)更新

07

最后打開你所創(chuàng)建的表,看到你添加的主鍵約束已經(jīng)加入進(jìn)來了,這種方式的效果alter的方式是一樣的

oracle主鍵怎么插入

1、創(chuàng)建表的同時(shí)創(chuàng)建主鍵約束

(1)無命名

create

table

student

(

studentid

int

primary

key

not

null,

studentname

varchar(8),

age

int);

(2)有命名

create

table

students

(

studentid

int

,

studentname

varchar(8),

age

int,

constraint

yy

primary

key(studentid));

2、刪除表中已有的主鍵約束

(1)無命名

可用

SELECT

*

from

user_cons_columns;

查找表中主鍵名稱得student表中的主鍵名為SYS_C002715

alter

table

student

drop

constraint

SYS_C002715;

(2)有命名

alter

table

students

drop

constraint

yy;

3、向表中添加主鍵約束

alter

table

student

add

constraint

pk_student

primary

key(studentid);


網(wǎng)站標(biāo)題:oracle怎么主鍵約束,oracle主鍵約束導(dǎo)入導(dǎo)出
分享地址:http://www.dlmjj.cn/article/dsccpjd.html