INITCAP в MariaDB - PullRequest
       4

INITCAP в MariaDB

0 голосов
/ 25 января 2020

В настоящее время я пытаюсь проверить, чтобы каждое значение, вставленное в мою таблицу MariaDB, начиналось с 1-й буквы каждого слова в верхнем регистре, поэтому я попытался использовать CONSTRAINT nombreok CHECK (INITCAP(nombre_director) = nombre_director));, но оно не работает, поскольку выдает ошибку, сообщающую, что Функция INITCAP () не может быть использована в ПРОВЕРКЕ ... что я могу сделать, чтобы решить ее?

1 Ответ

0 голосов
/ 25 января 2020

Я думаю, initcap() не является детерминированным c, поскольку результаты могут зависеть от параметров сортировки базы данных по умолчанию (при некоторых обстоятельствах).

Вы можете убедиться, что первые символы пишутся с большой буквы, используя:

CONSTRAINT nombreok CHECK (not (nombre_director collate latin1_general_cs) REGEXP '(^|[[:space:]])[[:lower:]]')

Здесь - это скрипта db <>.

Если вы также хотите проверить нижний регистр:

CONSTRAINT nombreok CHECK ((nombre_director collate latin1_general_cs) REGEXP '^([[:upper:]][[:lower:]]+([[:space:]]+|$))+$')

Однако, Возможно, вы захотите расширить это за пределы буквенных символов.

Здесь - это скрипта db <> для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...