Как изменить столбец, чтобы принимать значения в каком-то определенном формате? - PullRequest
1 голос
/ 29 марта 2019

В моей таблице есть столбец, в котором показан номер телефона, и я хочу добавить ограничение, в котором этот номер должен быть в определенном формате, например +cod.country-cod.local-num.local.Например: '+54-351-4350114'.

А позже я хочу добавить ограничение, где num.local должно содержать не менее 7 цифр.

1 Ответ

1 голос
/ 29 марта 2019

Полагаю, вы ищете ограничение 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

...