Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3058170
  • 博文数量: 206
  • 博客积分: 3409
  • 博客等级: 中校
  • 技术积分: 4066
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-24 10:21
个人简介

● ITPUB名人堂嘉宾 ● ChinaUnix社区博客专家 ● ChinaUnix社区Oracle板块版主 ● 优酷网认证音乐牛人:EricGuitar ● SDOUG 核心成员 ●E-mail:gaoqiangdba@163.com

文章分类

全部博文(206)

文章存档

2021年(11)

2020年(7)

2019年(7)

2016年(5)

2015年(36)

2014年(23)

2013年(15)

2012年(23)

2011年(61)

2010年(18)

分类: Oracle

2011-08-17 10:49:34

    1、Constraints的目的:

      设立Constraint就是为了让数据满足某些规则。


    2、Constraint的类型:

      not null    (不能为空)
      unique      (值必须唯一)
      primary key (not null + unique)
      goreign key (该表值必须在外键表中存在)
      check       (自己加的条件)
      ref         (不熟)


      注:Constraints不但可以建立在Table上,也可以建立在View上。


    3、Constraint的状态:

      ① Deferrable
      该参数用于指定是否可以是同set语句来进行临时控制constraint,时约束在commit时才生效
      DEFERRABLE:可以使用set constraint字句
      NOT DEFERRABLE:不可以使用set constraint字句(默认)

      ② Initially
      该参数用于建立默认的DEFERRABLE类型约束
      INITIALLY一般都要和IMMEDIATE、DEFERRED一起使用
      INITIALLY IMMEDIATE:在执行SQL时违反约束即报错(默认)
      INITIALLY DEFERRED:在提交时才报错

      ③ Validate | NoValidate
      该参数一般与Enabled和Disabled属性搭配使用

      ④ Enable
      该参数确认约束应用于数据
      ENABLE VALIDATE:将验证已经存在的和之后的操作是否符合约束(默认)
      ENABLE NOVALIDATE:不验证已经存在的数据,但对之后进行的操作有效

      ⑤ Disable
      该参数使约束失效
      DISABLE VALIDATE:约束失效标注,可用于暂时导入大量数据时,不进行索引更新
      DISABLE NOVALIDATE:约束失效,并不保证约束是否正确,即不保证已有数据满足约束(默认)

      ⑥ Rely
      Rely和Norely只能用在 ALTER TABLE MODIFY constraint 语句中
      Rely:告诉Oracle,不必对NOVALIDATE模式的约束的数据进行信任,即需要检验以前的数据
      (这个没用过,实在搞不准确切含义,还是把文档的内容直接放上来)
阅读(3271) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~