Oracle数据库的约束和索引(2)_Oracle数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

Oracle的约束和索引(2)

作者:黑客防线网安Oracle维护基地 来源:黑客防线网安Oracle维护基地 浏览次数:0

本篇关键词:Oracle数据库Oracle教程
黑客防线网安网讯:    not null constraint emp_deptno_fk references dept,  ename varchar2(10)  )  表定义contraint的只能写在最后,再看两个例子:  create table employees  (empno number(5)...
    not null constraint emp_deptno_fk references dept,
  ename varchar2(10)
  )
  表定义contraint的只能写在最后再看两个例子:
  create table employees
  (empno number(5),
  ename varchar2(10),
  deptno char(2) not null constraint emp_deptno_fk references dept,
  constraint emp_pk primary key(empno,ename)
  )
  create table employees
  ( empno number(5),
  ename varchar2(15),
  phone varchar2(15),
  email varchar2(30) unique,
  deptno number(3) not null,
  constraint emp_pk primary key(empno,ename),
  constraint emp_phone_uk unique (phone)
  )
  添加foreign key约束(多字段/表级)
  alter table employees
  add constraint emp_jobs_fk foreign key (job,deptno)
  references jobs (jobid,deptno)
  on delete cascade
  更改foreign key约束定义的引用行为(delete cascade/delete set null/delete no action),默认是delete on action
  引用行为(当主表中一条记录被删除时确定如何处理字表中的外部码字段):
  delete cascade : 删除子表中所有的相关记录
  delete set null : 将所有相关记录的外部码字段值设置为NULL
  delete no action: 不做任何操作
  先删除原来的外键约束,再添加约束
  ALTER TABLE employees DROP CONSTRAINT emp_deptno_fk;
  ALTER TABLE employees ADD CONSTRAINT emp_deptno_fk FOREIGN KEY(deptno) REFERENCES dept(deptno) ON DELETE CASCADE;
   check约束
  * 在CHECK约束的表达式中必须引用到表中的一个或多个字段,并且表达式的计算结果必须是一个布尔值
  * 可以在表级或字段级定义
  * 对同一个字段可以定义多个CHECK约束,同时也可以定义NOT NULL约束
  create table employees
  (sal number(7,2)
  constraint emp_sal_ck1 check (sal > 0)
  )
  alter table employees
  add constraint emp_sal_ck2 check (sal < 20000)
  删除约束
  alter table dept drop unique (dname,loc) --指定约束的定义内容
  alter table dept drop constraint dept_dname_loc_uk --指定约束名
  删除约束时,默认将同时删除约束所对应的索引,如果要保留索引,用KEEP INDEX关键字
  alter table employees drop primary key keep index
  如果要删除的约束正在被其它约束引用,通过ALTER TABLE..DROP语句中指定CASCADE关键字能够同时删除引用它的约束
  利用下面的语句在删除DEPT表中的PRIMARY KEY约束时,同时将删除其它表中引用这个约束的FOREIGN KEY约束:
  alter table dept drop primary key cascade
  禁用/激活约束(禁用/激活约束会引起删除和重建索引的操作)
  alter table employees disable/enable unique email
  alter table employees disable/enable constraint emp_ename_pk
  alter tabel employees modify constraint emp_pk disable/enable
  alter tabel employees modify constraint emp_ename_phone_uk disable/enable
  如果有FOREIGN KEY约束正在引用UNIQUE或PRIMARY KEY约束,则无法禁用这些UNIQUE或PRIMARY KEY约束,
  这时可以先禁用FOREIGN KEY约束,然后再禁用UNIQUE或PRIMARY KEY约束;或者可以在ALTER TABLE...DISABLE
  语句中指定CASCADE关键字,这样将在禁用UNIQUE或PRIMARY KEY约束的同时禁用那些引用
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-13211-1.html
网站维护教程更新时间:2012-03-23 00:52:14  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer