我试图创建一个具有属性(这是一个主键)的表,它只允许 CHAR(9)或EMPTY VALUE (空字符串''),如下所示:
create table person(
number CHAR (9) CHECK (number SIMILAR TO '[0-9]{2}-[0-9]{6}' OR number LIKE '_%')
);
我也尝试过 SIMILAR TO 这两个条件
create table person(
number CHAR (9) CHECK (number SIMILAR TO '[0-9]{2}-[0-9]{6}' OR number SIMILAR TO '_%')
);
但两种方式都不起作用
答案 0 :(得分:0)
其中一个是你想要的吗?
col CHAR(9) CHECK (col SIMILAR TO '[0-9]{2}-[0-9]{6}' OR col = '')
col CHAR(9) CHECK (col SIMILAR TO '[0-9]{2}-[0-9]{6}' OR col IS NULL)
(" number"是字符串值的可怕名称。)
因为您已将列声明为CHAR()
,所以您需要为所有字符添加插槽。您的模式中有9个字符。我不确定"空值"意思是,但是所有空格或NULL
似乎都是合理的。因为CHAR()
值具有固定长度,所以空字符串(''
)用空格填充到全长。