powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / есть ли типа данных типа UUID ?
4 сообщений из 4, страница 1 из 1
есть ли типа данных типа UUID ?
    #36884623
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужен такой тип. Есть ли? как смоделировать?
...
Рейтинг: 0 / 0
есть ли типа данных типа UUID ?
    #36885080
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
Winnipuhнужен такой тип. Есть ли? как смоделировать?

Зачем? Обычно достаточно такого:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
sqlite> create table test(a text not null check(length(a)= 32 ));
sqlite> select hex(randomblob( 16 ));
023DC10209A709F5BEFB701C37C3DE2C
sqlite> insert into test values (hex(randomblob( 16 )));
sqlite> insert into test values ( 1 );
Error: constraint failed
sqlite> insert into test values ('f');
Error: constraint failed

Если надо жесткое ограничение, использовать функцию regexp для проверки.
...
Рейтинг: 0 / 0
есть ли типа данных типа UUID ?
    #36885384
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBGWinnipuhнужен такой тип. Есть ли? как смоделировать?

Зачем? Обычно достаточно такого:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
sqlite> create table test(a text not null check(length(a)= 32 ));
sqlite> select hex(randomblob( 16 ));
023DC10209A709F5BEFB701C37C3DE2C
sqlite> insert into test values (hex(randomblob( 16 )));
sqlite> insert into test values ( 1 );
Error: constraint failed
sqlite> insert into test values ('f');
Error: constraint failed

Если надо жесткое ограничение, использовать функцию regexp для проверки.

спасибо, задача выглядит так:

мне надо брать данные из таблицы на sql server и писать в склайт, и потом наоборот.
В таблице есть гуидовые поля.
...
Рейтинг: 0 / 0
есть ли типа данных типа UUID ?
    #36885479
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
Winnipuh
спасибо, задача выглядит так:

мне надо брать данные из таблицы на sql server и писать в склайт, и потом наоборот.
В таблице есть гуидовые поля.

Видимо, нужен регексп:
Код: plaintext
1.
2.
sqlite> create table test(a text not null check(regexp('[A-z0-9]{32}',a)= 1 ));
sqlite> insert into test values (hex(randomblob( 16 )));

Разделители и регистр символов поставить по вкусу (согласно тому, что отдает ваш sql server).

Есть и другой способ. Когда-то я писал генератор UUID в виде расширения:
http://sqlite.mobigroup.ru/dir?name=ext/uuid
Если посмотрите, там есть версии с генерацией текстового представления (hex) и бинарного (blob). Добавить функцию-парсер несложно по аналогии. Это имеет смысл разве что для оптимизации (обычно UUID занимает 36 байт в виде текста, или 16 байт в бинарном виде), но я отказался от такого подхода, т.к. пропадает возможность использовать чрезвычайно эффективный полнотекстовый индекс (fts3), а какого-то заметного выигрыша в плане быстродействия и дискового пространства для моих задач blob UUID в тестах не показал.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / есть ли типа данных типа UUID ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]