Подтвердите использование Enum в MYSQL

У меня проблема с проверкой моего запроса в MySQL с использованием enum. как я знаю, MySQL не поддерживает с ограничением, поэтому я использую enum

Пример кода:

alter table jewerly modify gender enum('M','F') NOT NULL DEFAULT 'M';

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

я хочу изменить валидацию с помощью enum для: введенный формат productID должен выглядеть следующим образом: PR [xxx], xxx означает число. если мы используем ограничение, это будет похоже на ‘PR [0-9] [0-9] [0-9]’,
но я не знаю, как использовать в enum.

alter table jewelry modify jewelid enum('PR[0-9][0-9][0-9]') NOT NULL;

я пробовал этот запрос выше, но он не работает .. есть идеи?

0

Решение

То, что вы пытаетесь сделать, не имеет смысла в MySQL. Вы, кажется, используете формат регулярного выражения для enum определение.

Хотя enum может использоваться для такой проверки, у него есть некоторые недостатки. Например, существуют ограничения на количество значений. Изменение типа может быть проблематичным — например, исправление орфографической ошибки.

Вместо этого вы можете рассмотреть возможность использования внешних ключей для этой цели:

create table ref_jewelid (
jewelid varchar(255)
);

create table jewelry (
. . .
constraint fk_jewelid foreign key (jewelid) references ref_jewelid(jewelid)
);

Вы бы тогда заселили ref_jewelid с допустимыми значениями, возможно, используя электронную таблицу для генерации имен. Вы могли бы даже сделать этот шаг вперед и иметь jewelid быть добросовестный числовой идентификатор, имя которого является одним из его атрибутов. Такой подход я бы, вероятно, выбрал.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector