Размер хранилища строк в sqlite

После использования большого количества SQL Server и SQL Server Compact, я недавно начал использовать Sqlite. В настоящее время я создаю таблицы в Sqlite и заметил, что при определении строковых столбцов не требуется вводить ограничение длины строки. В SQL Server 255-символьный тип данных строки определяется как: varchar(255). В SQL Server Compact он определяется как: nvarchar(255).

Однако, в Sqlite, похоже, что тип данных столбца может быть определен просто как text без ввода какого-либо ограничения по размеру. Есть ли способ определить ограничение размера в sqlite? Или это даже не нужно?

Ответ 1

В SQLite существует управляемая строка или ограничение по блокам. Значение по умолчанию - 10 ^ 9 байт. См. документацию Кстати, вам не нужно указывать его в объявлении столбца в любом случае.

Ответ 2

SQLite позволяет писать VARCHAR(255) или NVARCHAR(255), но единственная соответствующая его часть - CHAR (которая дает столбец "сродство текста" ). Число в круглых скобках допускается для совместимости со стандартным SQL, но игнорируется.

В SQLite нет необходимости ограничивать длину строк, потому что (1) это не влияет на объем пространства, которое занимает строка на диске, и (2) нет произвольного предела (кроме SQLITE_MAX_LENGTH) на длина строк, которые могут использоваться в INDEX.

Если вам действительно необходимо установить ограничение на количество символов в столбце, просто добавьте ограничение типа CHECK(LENGTH(TheColumn) <= 255).