使用SQL CHECK限制条件来验证表格插入

日期: 2008-07-01 作者:Rudy Limeback 来源:TechTarget中国 英文

问:我有以下表格:   MyTable   ——-   type varchar2(20)   subtype varchar2(40)   我在这个表格中插入记录条的时候需要应用各种验证规则。例如,如果类型为“Tool”,子类型只能是“Template”或“Document”。如果类型为“Role”,子类型只能是“Group”或“Individual”。我要怎么做才能实现这样的效果呢?   答:一般的方法是运用CHECK限制条件: create table MyTable  ( type ……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

问:我有以下表格:

  MyTable

  -------

  type varchar2(20)

  subtype varchar2(40)

  我在这个表格中插入记录条的时候需要应用各种验证规则。例如,如果类型为“Tool”,子类型只能是“Template”或“Document”。如果类型为“Role”,子类型只能是“Group”或“Individual”。我要怎么做才能实现这样的效果呢?

  答:一般的方法是运用CHECK限制条件:


create table MyTable 
( type    varchar2(20)
, subtype varchar2(40)
, constraint valid_types
    check ( 
      type in (’Tool’,’Role’) 
          )
, constraint valid_subtypes
    check ( 
      case when type = ’Tool’
            and subtype in (’Template’
                           ,’Document’)
           then 1
           when type = ’Role’
            and subtype in (’Group’
                           ,’Individual’)
           then 1
           else 0 end = 1
          )

  免责声明:VARchar2说明你在使用Oracle。以上所用的CHECK限制条件已经经过Oracle的测试。

相关推荐