问:我有以下表格: MyTable ——- type varchar2(20) subtype varchar2(40) 我在这个表格中插入记录条的时候需要应用各种验证规则。例如,如果类型为“Tool”,子类型只能是“Template”或“Document”。如果类型为“Role”,子类型只能是“Group”或“Individual”。我要怎么做才能实现这样的效果呢? 答:一般的方法是运用CHECK限制条件: create table MyTable ( type ……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属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的测试。
相关推荐
-
通过进行正规化的表格设计提升应用性能(一)
无论你使用的是MySQL或者Oracle数据库,通过进行正规化的表格设计,可以令你的PHP代码更具可读性,更容易扩展,从而也会提升应用的性能……
-
通过进行正规化的表格设计提升应用性能
无论你使用的是MySQL或者Oracle数据库,通过进行正规化的表格设计,可以令你的PHP代码更具可读性,更容易扩展,从而也会提升应用的性能……