標籤:欄位 type 刪除 過程 基於 ora center 記錄 禁用
Oracle | PL/SQL唯一索引(Unique Constraint)使用方法
1 目標
用示範範例示範怎樣建立、刪除、禁用和使用唯一性限制式。
2 什麼是唯一性限制式?
唯一性限制式指表中一個欄位或者多個欄位聯合起來可以唯一標識一條記錄的約束。
聯合欄位中,可以包括空值。
註:在Oracle中,唯一性限制式最多能夠有32列。
唯一性限制式能夠在建立表時或使用ALTER TABLE語句建立。
3 唯一性限制式和主鍵的差別
- 主鍵(Primary Key):全部組成主鍵的列都不能包括空值。
- 唯一性限制式(Unique Constraint):假設唯一性限制式由多列組成,當中的部分列能夠包括空值。
- Oracle中不容許在同樣列上既建立主鍵又建立唯一性限制式。
4 建立表時定義唯一性限制式1)文法:
CREATE TABLE table_name( column1 datatype null/not null, column2 datatype null/not null, ... CONSTRAINT constraint_name UNIQUE (column1, column2,...,column_n));
2)基於單列的唯一性限制式示範範例:
create table tb_supplier( supplier_id number not null ,supplier_name varchar2(50) ,contact_name varchar2(50) ,CONSTRAINT tb_supplier_u1 UNIQUE (supplier_id)--建立表時建立唯一性限制式);
3)基於多列的唯一性限制式示範範例:
create table tb_products( product_id number not null, product_name number not null, product_type varchar2(50), supplier_id number, CONSTRAINT tb_products_u1 UNIQUE (product_id, product_name) --定義複合唯一性限制式);
5 使用ALTER TABLE文法建立唯一性限制式1)文法
ALTER TABLE table_nameADD CONSTRAINT constraint_nameUNIQUE (column1, column2, ... , column_n);
2)示範範例準備,先建立表
drop table tb_supplier;drop table tb_products;create table tb_supplier( supplier_id number not null ,supplier_name varchar2(50) ,contact_name varchar2(50));create table tb_products( product_id number not null, product_name number not null, product_type varchar2(50), supplier_id number);
3)基於單列的唯一性限制式
alter table tb_supplieradd constraint tb_supplier_u1unique (supplier_id);
4)基於多列的唯一性限制式
alter table tb_productsadd constraint tb_products_u1unique (product_id,product_name);
6 禁用唯一性限制式1)文法:
ALTER TABLE table_nameDISABLE CONSTRAINT constraint_name;
2)示範範例:
ALTER TABLE tb_supplierDISABLE CONSTRAINT tb_supplier_u1;
7 使用唯一性限制式1)文法:
ALTER TABLE table_nameENABLE CONSTRAINT constraint_name;
2)示範範例:
ALTER TABLE tb_supplierENABLE CONSTRAINT tb_supplier_u1;
8 刪除唯一性限制式1)文法:
ALTER TABLE table_nameDROP CONSTRAINT constraint_name;
2)示範範例:
ALTER TABLE tb_supplier DROP CONSTRAINT tb_supplier_u1;ALTER TABLE tb_products DROP CONSTRAINT tb_products_u1;
---------------------------------------------------------------------------------------------------------
假設您們在嘗試的過程中遇到什麼問題或者My Code有錯誤的地方,請給予指正,很感謝!
連絡方式:[email protected]
著作權@:轉載請標明出處!
----------------------------------------------------------------------------------------------------------
Oracle之唯一性限制式(UNIQUE Constraint)使用方法具體解釋