Маскировка ввода в Sqlite - PullRequest
       19

Маскировка ввода в Sqlite

1 голос
/ 07 ноября 2019

Как можно ограничить ввод столбца регистрационным номером определенным форматом AB-78. Первые 2 символа должны быть алфавитами, а последние два числа. Я пробовал как [AZ] [AZ] - [0-9] [0-9], но в SQLite это не сработало.

1 Ответ

3 голосов
/ 07 ноября 2019

Используйте оператор GLOB. Он поддерживает ограниченный набор подходящих шаблонов. Вы можете добавить ограничение CHECK в определение столбца (например, как часть оператора CREATE TABLE), которое включает в себя выражение GLOB, аналогично

CHECK (column GLOB '[A-Za-z][A-Za-z]-[0-9][0-9]')

Шаблоны GLOB чувствительны к регистру, поэтому я включил оба диапазона в верхнем регистреи строчные буквы. Если вам нужен конкретный случай, просто удалите другой диапазон в классе символов.

См. онлайн-документы для получения дополнительной информации о LIKE, REGEXP и GLOB. Информацию о шаблонах GLOB можно найти здесь или выполнить поиск в Интернете. Есть много страниц с дополнительной информацией. Я не думаю, что встроенная функция GLOB поддерживает все классы именованных символов.

...