Тип данных String в sqlite - PullRequest
2 голосов
/ 24 мая 2011

Я создал таблицу следующим образом:

create table employers (
    id integer primary key,
    name string,
    surname string,
    description string
);

Я заметил здесь , что string не между типами данных, я должен заменить его чем-то другим?Это псевдоним для какого-либо другого типа данных?Какое максимальное количество символов может содержать эта строка?

Я использовал string, и это не создает никаких проблем.Меня интересует только как это возможно, чтобы я мог использовать строку.Это какой-то псевдоним?Каковы возможности этого типа?

спасибо

Ответы [ 2 ]

13 голосов
/ 24 мая 2011

Вы хотите использовать ТЕКСТ, который мы используем для хранения ваших данных.

CREATE TABLE Employers (
    id INTEGER PRIMARY KEY,
    name TEXT,
    surname TEXT,
    description TEXT
);

См. http://www.sqlite.org/datatype3.html и примечание:

SQLite использует более общую динамику система типов. В SQLite тип данных значения связано с Само значение, а не с его контейнером. Динамическая система типов SQLite обратная совместимость с более системы общего статического типа других движки баз данных в том смысле, что SQL Заявление, что работает на статически типизированные базы данных должны работать одинаково путь в SQLite. Тем не менее, динамический ввод в SQLite позволяет это сделать вещи, которые невозможны в традиционные жестко типизированные базы данных.

Это отметил:

SQLite не налагает никакой длины ограничения (кроме больших глобальное ограничение SQLITE_MAX_LENGTH) на длина строк, больших двоичных объектов или числовых значения.

Наконец:

Максимальная длина строки или BLOB

Максимальное количество байтов в Строка или BLOB в SQLite определяется как макрос препроцессора SQLITE_MAX_LENGTH. значение по умолчанию этого макроса составляет 1 миллиард (1 тысяча миллионов или 1 000 000 000). Вы можете повысить или понизить это значение в время компиляции с использованием командной строки вариант как это:

-DSQLITE_MAX_LENGTH = 123456789 Текущая реализация будет только поддержка строки или BLOB длиной до 231-1 или 2147483647. И некоторые встроенные такие функции, как hex () могут завершиться ошибкой задолго до этого момента. В чувствительные к безопасности приложения это лучше не пытаться увеличить максимальная длина строки и капли. В факт, что вы могли бы преуспеть, чтобы снизить максимальная длина строки и капли до нечто большее в диапазоне нескольких миллион, если это возможно.

Во время вставки SQLite и ВЫБЕРИТЕ обработку, полный содержание каждой строки в базе данных закодирован как один BLOB. Итак Параметр SQLITE_MAX_LENGTH также определяет максимальное количество байтов подряд.

Максимальная длина строки или BLOB может быть опущены во время выполнения с помощью sqlite3_limit (дБ, SQLITE_LIMIT_LENGTH, размер) интерфейс.

0 голосов
/ 24 мая 2011

Объявите ваше поле как "TEXT", и я считаю, что вы можете указать ограничение длины.

, чтобы вы могли объявить имя TEXT (255) как значение TEXT из 255 символов.

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