Полагаю, вы ищете ограничение Postgres CHECK
: такое ограничение принимает регулярное выражение с оператором 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 .
Демонстрация на DB Fiddle