向 phone 数字列添加 2 个约束

Adding 2 constraints to phone number column

我需要给现有的 table 添加一个限制,这样 phone 号码只能是 10 位手机号码或 8 位固定电话号码(没有空格或区号)。

这是我试过的代码:

ALTER TABLE people

ADD CONSTRAINT digit_phoneno_8_10

CHECK (phoneno ~ '^[0-9]{8,10}$');

这允许 9 位数字 phone,我想排除它。

要精确地计算 n 位或精确地 m 位,您需要使用交替 | 运算符:

ALTER TABLE people

ADD CONSTRAINT digit_phoneno_8_10

CHECK (phoneno ~ '^(\d{8}|\d{10})$');