SQL> 
SQL> create table test(ph varchar(20));
Table created
SQL> alter table test add constraint ck_test check(not regexp_like(ph, '[^0-9]'));
Table altered
SQL> insert into test values('111111');
1 row inserted
SQL> insert into test values('A1111');
insert into test values('A1111')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> insert into test values('ABC');
insert into test values('ABC')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> insert into test values('111A');
insert into test values('111A')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> insert into test values('111AA111');
insert into test values('111AA111')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> insert into test values('中国人民');
insert into test values('中国人民')
ORA-02290: 违反检查约束条件 (ORACLE.CK_TEST)
SQL> select * from test;
PH
--------------------
111111
SQL> drop table test purge;
Table droppedSQL> 

解决方案 »

  1.   


    为什么 不是 not regexp_like(ph, '[^0-9]+') 一个或多个?
    [^0-9]不是第一位为非数字吗?
      

  2.   


    为什么 不是 not regexp_like(ph, '[^0-9]+') 一个或多个?
    [^0-9]不是第一位为非数字吗?^ 第一位
    [^] 中括号里是非操作加不加那个+一样,有数字以外就不行呗
      

  3.   

    请问在mysql中怎么实现呢