在CHAR,SQL中插入空值

时间:2017-02-22 16:51:29

标签: sql postgresql

我试图创建一个具有属性(这是一个主键)的表,它只允许 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 '_%')
      );

但两种方式都不起作用

1 个答案:

答案 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()值具有固定长度,所以空字符串('')用空格填充到全长。