我想使用一个约束,要求输入为“SUB”后跟 4 位数字。到目前为止,这就是我得到的,但它抛出了这个错误。
CREATE TABLE subscriptionsTable(
subID number PRIMARY KEY,
channelID number,
userID number,
subStartDate DATE NULL,
subEndDate DATE NULL,
subCode VARCHAR(10) NOT NULL,
CONSTRAINT c_subCode (check REGEXP_LIKE(subCode,['SUB{3}[0-9][0-9][0-9][0-9]'))
);
ERROR at line 8:
ORA-00904: : invalid identifier
CHECK
约束中存在语法问题,您的正则表达式模式需要进行一些小更改。
您需要以下代码:
CREATE TABLE SUBSCRIPTIONSTABLE(
SUBID NUMBER PRIMARY KEY,
CHANNELID NUMBER,
USERID NUMBER,
SUBSTARTDATE DATE NULL,
SUBENDDATE DATE NULL,
SUBCODE VARCHAR(10) NOT NULL,
CONSTRAINT C_SUBCODE
CHECK ( REGEXP_LIKE ( SUBCODE, '^(SUB)[0-9]{4}' ) ) ); -- changes here