Unique约束
Unique约束可应用于一列或多列字段上。如果字段值存在,必须为唯一的,可以取null值
1、一张表只能有一个PK约束但可以有多个Unique约束
2、作为PK的字段不能为null,但作为Unique的字段可以为null,但不为null的行必须是Unique的
3、当创建一个PK时,创建一个Index,创建一个Unique时也创建一个Index
4、PK和Unique约束字段可以作为FK的父亲。FK约束字段引用PK约束,也引用Unique约束
创建语句:
CREATE TABLE temp (pk NUMBER PRIMARY KEY, a NUMBER, b NUMBER);
ALTER TABLE temp ADD CONSTRAINT uk_temp_a_b UNIQUE (a, b);
Example:
CREATE TABLE students
(student_id VARCHAR2(10) NOT NULL,
student_name VARCHAR2(30) NOT NULL,
college_major VARCHAR2(15) NOT NULL,
status VARCHAR2(15) NOT NULL,
state VARCHAR2(2),
license_no VARCHAR2(30)) TABLESPACE student_data;
ALTER TABLE students
ADD CONSTRAINT pk_students PRIMARY KEY (student_id)
USING INDEX TABLESPACE student_index;
ALTER TABLE students
ADD CONSTRAINT uk_students_license
UNIQUE (state, license_no)
USING INDEX TABLESPACE student_index;
ADD CONSTRAINT ck_students_st_lic
CHECK ((state IS NULL AND license_no IS NULL) OR
(state IS NOT NULL AND license_no is NOT NULL));