oracle删除unique key,概述Oracle Unique约束
Oracle還是比較常用的,于是我研究了一下Oracle Unique約束,在這里拿出來和大家分享一下,希望對大家有用。如果某個約束只作用于單獨的字段,即可以在字段級定義約束,也可以在表級定義約束,但如果某個約束作用于多個字段,必須在表級定義約束
◆在定義約束時可以通過CONSTRAINT關鍵字為約束命名,如果沒有指定,Oracle將自動為約束建立默認的名稱定義primary key約束(單個字段)create?table?employees?(empno?number(5)?primary?key,...)
指定約束名create?table?employees?(empno?number(5)?constraint?emp_pk?primary?key,...)
定義primary key約束(多個字段,在表級定義約束)create?table?employees
(empno?number(5),
deptno?number(3)?not?null,
constraint?emp_pk?primary?key(empno,deptno)
using?index?tablespace?indx
storage?(initial?64K
next?64K
)
)
Oracle自動會為具有PRIMARY KEY約束的字段(主碼字段)建立一個***索引和一個NOT NULL約束,定義PRIMARY KEY約束時可以為它的索引指定存儲位置和存儲參數alter?table?employees?add?primary?key?(empno)
alter?table?employees?add?constraint?emp_pk?primary?key?(empno)
alter?table?employees?add?constraint?emp_pk?primary?key?(empno,deptno)
not?null約束(只能在字段級定義NOT?NULL約束,在同一個表中可以定義多個NOT?NULL約束)
alter?table?employees?modify?deptno?not?null/null
Unique約束create?table?employees
(?empno?number(5),
ename?varchar2(15),
phone?varchar2(15),
email?varchar2(30)?unique,
deptno?number(3)?not?null,
constraint?emp_ename_phone_uk?unique?(ename,phone)
)
alter?table?employees
add?constraint?emp_uk?unique(ename,phone)
using?index?tablespace?indx
定義了Oracle Unique約束的字段中不能包含重復值,可以為一個或多個字段定義Oracle Unique約束,因此,Unique即可以在字段級也可以在表級定義,在Oracle Unique約束的字段上可以包含空值.
foreign key約束
◆定義為FOREIGN KEY約束的字段中只能包含相應的其它表中的引用碼字段的值或者NULL值
◆可以為一個或者多個字段的組合定義FOREIGN KEY約束
◆定義了FOREIGN KEY約束的外部碼字段和相應的引用碼字段可以存在于同一個表中,這種情況稱為"自引用"
◆對同一個字段可以同時定義FOREIGN KEY約束和NOT NULL約束
【編輯推薦】
【責任編輯:志京 TEL:(010)68476606】
點贊 0
總結
以上是生活随笔為你收集整理的oracle删除unique key,概述Oracle Unique约束的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多人联机手机生存游戏有哪些
- 下一篇: oracle行的唯一标识符,Oracle