определить тип столбца "VARIANT" в SQLite? - PullRequest
1 голос
/ 17 сентября 2010

Есть ли способ определить тип столбца в SQLite, который содержит любой тип данных, поддерживаемый SQLite?

У меня есть неподписанные символы, подписанные символы, неподписанные числа, подписанные числа, символы UTF-8 и большие двоичные объекты, которые я хочу заполнить в одном столбце.

Ссылка на любую литературу также приветствуется.

Ответы [ 2 ]

7 голосов
/ 17 сентября 2010

Только не указывайте тип в объявлении столбца, так как он имеет NONE affinity

create table my_table(my_col);

SQLite имеет уникальную систему динамической типизации.Он имеет типизацию для каждого значения, но если вы укажете тип столбца, SQLite определит сходство типов (TEXT, NUMERIC, INTEGER, REAL, NONE).Затем он пытается привести каждое значение к этой близости.

Фактические поддерживаемые типы: NULL, INTEGER, REAL, TEXT, BLOB.См. Типы данных в SQLite версии 3 для получения дополнительной информации.

3 голосов
/ 18 сентября 2010

Вариант по умолчанию в sqlite, наоборот сложнее. Трудно определить столбец, который может переносить только числа и выдает исключение, когда вы хотите вставить «это текст».

Можно утверждать, что в столбце могут храниться только целые числа с проверочным ограничением:

CHECK(typeof(x)='integer')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...