比方说表user有个age属性,要求它必须为三位数字,怎么写这个约束呢
我这样写了alter table user
add constraint ck_age check(age like '[0-9][0-9][0-9]');                                                                                               可是我在填加数据的时候,不行,说跟约束不匹配,我填的都是数字!
在oracle,怎么写约束只能是数字呢

解决方案 »

  1.   

    alter table user
    add constraint ck_age check(regexp_like(age, '[0-9][0-9][0-9]'));      使用正则表达式,必须10g以上
    其中的函数有
    1.regexp_like
    2.regexp_substr
    3.regexp_instr
    4.regexp_replace
    更多
      

  2.   

    age like '[0-9][0-9][0-9]'
    是字符型的
    使用regexp_like(age, '[0-9][0-9][0-9]')可以。
      

  3.   

    alter table user
    add constraint ck_age check(REGEXP_like(age,'[0-9][0-9][0-9]'));
      

  4.   

    的确  用like 可以完成约束 但是insert 会出错   
    用regexp_like()就ok