1、建立表时指定约束。
create table test(id number(10) constraint test_nn not null,name varchar2(20),company varchar2(20));
2、表建立好后再指定约束。
drop table test;
create table test(id number(10),name varchar2(20),company varchar2(20));
alter table test modify(id constraint test_nn not null);
3、删除约束。
alter table test drop constraint test_nn;
二、check条件检查
create table test(id number(10) constraint test_id_c check(id>=1),name varchar2(20),company varchar2(20));
属于列级约束
drop table test;
create table test(id number(10),name varchar2(20),company varchar2(20),constraint test_id_c check(id>=1));
属于表级约束
三、unique约束
create table test(id number(10) constraint test_id_u unique,name varchar2(20),company varchar2(20));
属于列级约束
create table test(id number(10),name varchar2(20),company varchar2(20),constraint test_id_u unique(id));
属于表级约束
四、主键约束
主键约束在效果上,相当于唯一约束+非空约束。也就是,即要求列值不能重复,又要求列值必须非空。要注意的是,在同一列上,不能即有主键约束,又有唯一约束。
五、外键约束
外键约束则必须主键结合在一起使用。在创建约束时,先必须先有一个主键,然后,根据此主键,创建一个相关联的外键约束。也就是说,外键约束必须对应一个主键,不能创建独立的外键约束。
七、约束的禁用与启用
SQL> create table emp1(id number(10), name varchar2(20), dept number(10));
Table created.
SQL> create table dept1(dept number(10), dept_name varchar2(20));
Table created.
SQL> alter table dept1 add(constraint dept1_dept_p primary key(dept));
Table altered.
SQL> alter table emp1 add(constraint emp1_dept_f foreign key(dept) references dept1(dept));
Table altered.
SQL> drop table dept1;
drop table dept1
*
ERROR at line 1:
ORA-02449: unique/primary keys in table referenced by foreign keys
1、约束的禁用
Alter table 表名 disable constraint 约束名 cascade;
在主外键约束中,先禁用外键,再禁用主键。
2、约束的启用
Alter table 表名 enable constraint 约束名 cascade;
在主外键约束中,先启用主键,再启用外键
阅读(4461) | 评论(0) | 转发(0) |