2013-07-22 41 views
10

SQL ServerSQL Server Compactのロットを使用した後、私は最近Sqliteを使用し始めました。私は現在Sqliteでテーブルを作成しており、文字列の列を定義するときに文字列の長さの制限を入力する必要がないように見えます。 SQL Serverでは、255文字の文字列データ型がvarchar(255)のように定義されています。 SQL Server Compactでは、それはnvarchar(255)のように定義されます。sqliteの文字列格納サイズ

ただし、Sqliteでは、サイズ制限を入力せずに、列データ型を単にtextと定義することができます。 sqliteにサイズ制限を定義する方法はありますか?それともこれは必要ではないのですか?

+1

文字列の長さを指定する必要はありませんが、[構文](http://www.sqlite.org/syntaxdiagrams.html#type-name)を参照してください)。しかし、他のDB実装とは異なり、固定サイズの領域は列には割り当てられませんが、行はオブジェクトの同様のリストのように構成されます。だから狭い値のために主に使用されるワイド列を持つための "ペナルティ"はありません。 –

答えて

6

SQLiteに管理可能な文字列またはブロブの制限があります。デフォルトは10^9バイトです。 See documentation ところで、あなたはとにかくそれを列宣言に指定する必要はありません。

9

VARCHAR(255)またはNVARCHAR(255)と書くことができますが、そのうちの唯一の部分はCHAR(これは「テキストの類似性」という列です)です。カッコ内の数字は標準SQLとの互換性のために使用できますが、無視されます。 (1)それは、文字列がディスク上に取り、(2)(SQLITE_MAX_LENGTHを除く)は、任意の制限はありませんスペースの量には影響を与えませんので、SQLiteので

は、文字列の長さの制約のために少し必要は、ありますINDEXで使用できる文字列の長さ。

実際に列の文字数に制限を設ける必要がある場合は、CHECK(LENGTH(TheColumn) <= 255)のような制約を追加するだけです。

関連する問題