SQLITE Пользовательские Типы данных? - PullRequest
10 голосов
/ 07 декабря 2011

Я довольно новичок в SQLITE, и я заметил, что есть только 4 типа данных, но я вижу примеры онлайн, где люди вводят свои собственные типы данных. Я не очень понимаю это, и мне было интересно, если кто-то может объяснить это мне. Например, я вижу столбец, в котором будет храниться дата, а тип данных, который был указан, - это отметка времени, которая не существует. Что это по умолчанию? Это по умолчанию текст, когда вы делаете свой собственный?

1 Ответ

14 голосов
/ 07 декабря 2011

sqlite3 использует систему динамического типа.Существует только пять классов хранения: NULL, integer, real, text и blob.(Источник: Типы данных в SQLite версии 3 .)

И, чтобы процитировать эту страницу:

Любой столбец в базе данных SQLite версии 3, кроме INTEGERСтолбец PRIMARY KEY, может использоваться для хранения значения любого класса хранения.

Помимо исключения integer primary key, SQLite вообще не применяет типы.Это означает, что имя типа, которое вы вводите в create table, является чисто информативным.

create table mytab (a apples, b bananas);

является действительным оператором create table.Вы можете вставлять метки времени, текст, большие двоичные объекты в оба столбца (не говоря о том, что вы должны , но можете это сделать).

Для получения дополнительной информации см. Связанную справочную документацию по системе типов.

sqlite> create table mytab (a apples, b bananas);
sqlite> insert into mytab values (CURRENT_TIME, NULL);
sqlite> insert into mytab values ('hello', 3.14159);
sqlite> select * from mytab;
14:59:18|
hello|3.14159

Чтобы ответить на ваш вопрос напрямую: по умолчанию нет.Тип хранилища связан с каждым значением, хранящимся в базе данных, а не со столбцами таблицы.

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