2017-02-14 52 views
0

我在学校有一项任务来创建数据库。在这个数据库中,我必须创建一个名为具有一些属性(国家,个人编号,姓名等)的人员的表格。PostgreSQL:为个人号码创建一个CHECK CONSTRAINT

当创建DB我必须确保个人号码应具有以下格式:XXXXXXXX-XXXX其中X是0和9

之间的数字我试图做到这一点如下:

ALTER TABLE person 
    ADD CONSTRAINT persondigits CHECK 
     (personalNumber LIKE '________-____') 
     AND personalnumber IN ('0','1','2','3','4','5','6','7','8','9','-') 

其中personalnumber类型是varchar,但这不起作用。
我已经尝试了许多其他CHECK s但仍然无法正常工作。

+0

@Laurenz ALBE感谢校正 – Sam

回答

0

在PostgreSQL,你可以使用SIMILAR TO模式是这样的:

CREATE TABLE person (
personal_number CHAR(13) CHECK (personal_number SIMILAR TO '[0-9]{8}-[0-9]{4}') 
); 
+0

哦~~真棒它的工作原理..非常感谢你(Y)..我不知道有关类似TO ...再次感谢你 – Sam