如何在创建Table时使用REGEXP_LIKE约束

时间:2017-07-10 14:10:29

标签: oracle oracle11g

直到昨晚,这才有效:

echo

现在,如果我填充,请看到此错误:

CREATE TABLE UTENTE(
    ID_USER             CHAR(7)         PRIMARY KEY,
    USERNAME            VARCHAR(25)     NOT NULL UNIQUE,
    PASSWORD            VARCHAR(25)     NOT NULL,
    DATA_SIGNUP         DATE            DEFAULT SYSDATE,
    EMAIL               VARCHAR(40)     NOT NULL UNIQUE,
    CONSTRAINT          CK_REG_US       CHECK(REGEXP_LIKE(USERNAME,'^[A-Za-z0-9]$')),
    CONSTRAINT          CK_REG_EM       CHECK(REGEXP_LIKE(EMAIL, '^(\S+)\@(\S+)\.(\S+)$'))
);

从昨天晚上到今天,一切都没有改变 违反约束的插入示例

ORA-02290: check constraint (ADMIN.CK_REG_US) violated
  

我解决了问题,$,不得不被删除,昨晚我不知道   为什么我说,感谢帮助

1 个答案:

答案 0 :(得分:0)

正则表达式'^[A-Za-z0-9]$'仅表示一个字符。

请尝试'^[A-Za-z0-9]+$''^[[:alnum:]]+$''^\w+$'

关于您的评论的注意事项:如果您删除'^[A-Za-z0-9]'之类的$,那么Rock and junk 之类的用户名将被视为有效!