我的表中有一列显示电话号码,我想添加一个约束,其中该号码必须采用+cod.country-cod.local-num.local
之类的特定格式。例如:'+54-351-4350114'
。
然后我要添加一个约束,其中num.local
必须至少包含7位数字。
答案 0 :(得分:1)
我猜您正在寻找Postgres CHECK
constraint:这种约束确实接受了SIMILAR TO
运算符的正则表达式:
ALTER TABLE mytable ADD CONSTRAINT phone_number_check CHECK(
phone_number SIMILAR TO '\+\d+-\d+-\d{7,}'
)
正则表达式说明:
\+ the + sign
\d+ at least one digit
- the - sign
\d+ at least one digit
- the - sign
\d{7,} at least 7 digits
这将允许诸如'+54-351-1234567'
之类的值,同时例如拒绝'+54-351-123456'
。您可以使用Postgres Regular Expressions根据自己的要求自由调整正则表达式。