Мне нужно написать ограничение в db2, где имя пользователя должно начинаться с @, за которым следует буквенно-цифровой шаблон, может иметь максимальную длину 31 и может содержать только строчные буквы, цифры и символ _ (подчеркивание). Я сделал это:
ALTER TABLE KUNDENKONTAKTDATEN ADD CONSTRAINT
TwitterID_CHECK CHECK ( trim(length(TWITTER_ID)) <= 31 AND TWITTER_ID like '@%')
Моя проблема заключается в том, что часть содержит только строчные буквы, цифры и _ .
Это мой домашний вопрос, и советы заключались в том, чтобы использовать такие функции, как Trim, Translate, Length и Substr, но мне разрешено использовать другие функции. Интернет сказал мне использовать функцию fn:matches, но я не уверен, как она работает.
Может ли кто-нибудь помочь мне решить эту проблему с использованием fn:matches или без него?
заранее спасибо
Изменить: на самом деле это не дубликат this, но можно применить аналогичный метод. чтобы проверить, содержит ли он недопустимое значение. Этот вопрос касается не только определения того, содержит ли столбец специальные символы. Уникальными частями моего вопроса являются: длина, начиная с, не определяя, есть ли у нее специальный символ, но допуская только один специальный символ (_) в качестве значения и, следовательно, не дубликат.