帮助约束

问题描述

| 我正在创建一个表,约束之一是第一个字符必须为\“ G \”,然后是5个数字:
CREATE TABLE PHONE (
  PHONEID CHAR (6) NOT NULL,PHONENO NUMERIC NOT NULL,CONSTRAINT PHONE_PHONEID_PK PRIMARY KEY (PHONEID),CONSTRAINT PHONE_PHONENO_UK UNIQUE (PHONENO)
);
如何使用sql执行此操作?我需要打电话给他     

解决方法

        在MS SQL中,它看起来像这样:
create table Phone
(
    PhoneId char(6) not null
        constraint Phone_PhoneId_PK primary key
        constraint Phone_PhoneId_CK check (PhoneId like \'G[0-9][0-9][0-9][0-9][0-9]\'),PhoneNumber numeric not null
        constraint Phone_PhoneNumber_UK unique
)

insert Phone
values(\'G00001\',123) -- pass

insert Phone
values(\'G0001\',123)  -- fail

insert Phone
values(\'D0001\',123) -- fail
    ,        在Oracle中,我认为应该是:
CREATE TABLE PHONE (
  PHONEID CHAR (6) NOT NULL,PHONENO NUMERIC NOT NULL,CONSTRAINT PHONE_PHONEID_PK PRIMARY KEY (PHONEID),CONSTRAINT PHONE_PHONENO_UK UNIQUE (PHONENO),CONSTRAINT PHONE_PHONEID_CK CHECK(REGEX_LIKE(PHONEID,\'^G\\d{5}$\'))
);
*免责声明:自从我与Oracle合作以来已经有一段时间了,我现在无法访问Oracle数据库来验证上述内容,而这是基于Check Restraints和REGEXP_LIKE函数的文档。可能需要一些调整。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...