Oracle | PL/SQL唯一索引(Unique Constraint)用法
用示例演示如何創建、刪除、禁用和使用唯一性約束。
唯一性約束指表中一個字段或者多個字段聯合起來能夠唯一標識一條記錄的約束。聯合字段中,可以包含空值。
注:在Oracle中,唯一性約束最多可以有32列。
唯一性約束可以在創建表時或使用ALTER TABLE語句創建。
主鍵(Primary Key):所有組成主鍵的列都不能包含空值。唯一性約束(Unique Constraint):如果唯一性約束由多列組成,其中的部分列可以包含空值。Oracle中不容許在相同列上既創建主鍵又創建唯一性約束。
CREATE TABLE table_name ( column1 datatype null/not null, column2 datatype null/not null, ... CONSTRAINT constraint_name UNIQUE (column1, column2,...,column_n) );
create table tb_supplier ( supplier_id number not null ,supplier_name varchar2(50) ,contact_name varchar2(50) ,CONSTRAINT tb_supplier_u1 UNIQUE (supplier_id)--創建表時創建唯一性約束 );
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) --定義復合唯一性約束 );
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... , column_n);
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 );
alter table tb_supplier add constraint tb_supplier_u1 unique (supplier_id);
alter table tb_products add constraint tb_products_u1 unique (product_id,product_name);
ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;
ALTER TABLE tb_supplier DISABLE CONSTRAINT tb_supplier_u1;
ALTER TABLE table_name ENABLE CONSTRAINT constraint_name;
ALTER TABLE tb_supplier ENABLE CONSTRAINT tb_supplier_u1;
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
ALTER TABLE tb_supplier DROP CONSTRAINT tb_supplier_u1; ALTER TABLE tb_products DROP CONSTRAINT tb_products_u1;---------------------------------------------------------------------------------------------------------
如果您們在嘗試的過程中遇到什麼問題或者我的代碼有錯誤的地方,請給予指正,非常感謝!
聯系方式:[email protected]
版權@:轉載請標明出處!