on delete set null (级联置空):
当父表中的主键列被删除时,子表中相对应的列置为空
当自表外键列设置了级联时,就可以在父表中随意删除了
检查约束:
creat
create table emp(
e_id number unique,
e_name varchar2(20) not null,
salary number(10) ,
constraint salary_ck check (salary between 0 and 100000 and length(e_name)>5)
)
添加/删除约束 但不能修改约束
添加约束
alter table 表名 add constraint 约束名 约束类型 指定列
添加 not null 约束时需要用关键字 modify
alter table 表名 modify 指定列 not null
create table emp(
e_id number ,
e_name varchar2(20) ,
salary number(10)
)
--添加约束
alter table emp add constraint e_name_uk unique (e_name)
alter table emp modify e_name not null
insert into emp (e_name)values ('s')
select * from emp
--删除约束
alter table emp drop constraint e_name_uk
--禁用约束
alter table emp disable constraint e_name_uk
--激活约束
alter table emp enable constraint e_name_uk
查询数据字典
user_constraint 所有约束
user_cons_columns 定义约束的列
在有where指定 table_name 时需要大写表名
select * from user_constraints where table_name ='EMP'
select * from user_cons_columns