SQL Запрос на разработку таблицы, в которой есть столбец, который принимает только 1 алфавит и 2 цифры всего 3 символа - PullRequest
0 голосов
/ 25 марта 2020

если мы создаем таблицу x и в ней есть столбец y, то в столбец y должны приниматься только значения, содержащие значение alphanumeri c, например, "A39".

CREATE TABLE X
(
  Y Text not null check (length(Y)('[A-Z]','[0-9]','[0-9]' ,3)) 
); 

Я не могу запустить этот код, я не уверен, если это путь, какое ограничение я должен использовать здесь?

1 Ответ

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

Вам необходимо использовать GLOB для этой проверки:

sqlite> CREATE TABLE x (y TEXT NOT NULL CHECK (y GLOB '[A-Z][0-9][0-9]'));
sqlite> INSERT INTO x VALUES ('A01');
sqlite> INSERT INTO x VALUES ('A01Z');
Error: CHECK constraint failed: x

Оператор GLOB похож на LIKE, но использует синтаксис глобализации файла Unix для своих подстановочных знаков. Кроме того, GLOB чувствителен к регистру, в отличие от LIKE.

Так что, если вы хотите использовать строчные буквы, используйте [A-Za-z] вместо [A-Z].

...