Как использовать REGEXP в ограничении, которое требует, чтобы ввод состоял из 2 символов и 2 цифр - PullRequest
0 голосов
/ 17 марта 2020

Мне нужно, чтобы ввод был в форме XX ##, где X - буквы, а # - цифры.

Это то, что я до сих пор получил, что, похоже, не работает.

CREATE TABLE videoTable(
videoID number PRIMARY KEY,
channelID number,
videoTitle VARCHAR(255) NOT NULL,
videoPostedDate DATE NOT NULL,
videoTags VARCHAR(255) NULL,
noViews number NOT NULL,
videoCode VARCHAR(4) NOT NULL,
CONSTRAINT  c_videoCode check(videoCode REGEXP '^[A-Za-z]{2}[0-9]+$')
);

Текущая ошибка:

CONSTRAINT      c_videoCode check(videoCode REGEXP '^[A-Za-z]{2}[0-9]+$')
                                            *
ERROR at line 9:
ORA-00920: invalid relational operator

1 Ответ

0 голосов
/ 17 марта 2020

Использование REGEXP_LIKE:

CHECK (REGEXP_LIKE(videoCode, '^[A-Za-z]{2}[0-9]+$'))

Обратите внимание, что REGEXP - это не Oracle синтаксис, а MySQL. И если вы действительно используете MySQL, проверка ограничений не будет работать, если вы не используете версию 8 или новее.

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