十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
以下的文章主要是講述Oracle中創(chuàng)建unique***約束 (單列和多列)的實(shí)際操作方案,Oracle unique約束其實(shí)就是用來保證其表里的某一類,或是使表中的某一類組合起來時(shí)不重復(fù)的一種手段。

創(chuàng)新互聯(lián)是一家專業(yè)提供岳陽(yáng)縣企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、H5建站、小程序制作等業(yè)務(wù)。10年已為岳陽(yáng)縣眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
我們?cè)诳梢栽趧?chuàng)建表時(shí)或者創(chuàng)建好后通過修改表的方式來創(chuàng)建Oracle unique約束。
下面是一些創(chuàng)建unique約束的例子:
- create table unique_test
- (id number,
- fname varchar2(20),
- lname varchar2(20),
- address varchar2(100),
- email varchar2(40),
- constraint name_unique unique(fname,lname))
在這里我們建立了一個(gè)表unique_test,并將其中的fname和lname組合起來建立了Oracle中創(chuàng)建unique***約束。
我們也還可以在表創(chuàng)建完成后手動(dòng)的通過修改表的方式來增加約束,例如:
- alter table unique_test
- add constraint email_unique unique(email);
下面我們來往表里面插入數(shù)據(jù),
- insert into unique_test(id,fname,lname) values(1,’德華’,'劉’)
這一行可以正常的被插入
因?yàn)槲覀冊(cè)诮⒈頃r(shí)曾把fname和lname聯(lián)合起來作為一個(gè)約束,因?yàn)槿绻覀兿M俅尾迦雱⒌氯A,
- insert into unique_test(id,fname,lname) values(2,’德華’,'劉’)
是會(huì)出現(xiàn)如下錯(cuò)誤的:
ORA-00001: 違反***約束條件 (SYS.NAME_UNIQUE)
但我們?nèi)绻臑槿缦轮担?/p>
- insert into unique_test(id,fname,lname) values(2,’學(xué)友’,'張’);
又可以正常插入了。
有些朋友可能會(huì)有疑問,我們不是為email也建立的一個(gè)***約束嗎?為什么這兩行數(shù)據(jù)都沒有為email列賦值,也就是或兩行的email列都是空值,而插入也成功了呢?
這是因?yàn)橐粋€(gè)空值(null)的含義是該列當(dāng)前的狀態(tài)是不存在,他永遠(yuǎn)不可能會(huì)與另外一個(gè)空值相等。所以也就不存在違反***約束之說了。
以上的相關(guān)內(nèi)容就是對(duì)創(chuàng)建表時(shí)或者創(chuàng)建好后通過修改表的方式來創(chuàng)建Oracle unique約束的介紹,望你能有所收獲。
【編輯推薦】